create: Improve archetype directory discovery and tests
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Fri, 12 Nov 2021 09:29:13 +0000 (10:29 +0100)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Fri, 12 Nov 2021 11:05:31 +0000 (12:05 +0100)
Updates #9146

create/content.go
create/content_test.go

index 52393ce5b6c475a8ab237ba1b9b74dfe7515a93b..524803d36b9e867e3a6feab68c844300bef282ad 100644 (file)
@@ -252,7 +252,8 @@ func (b *contentBuilder) setArcheTypeFilenameToUse(ext string) {
        if b.kind != "" {
                pathsToCheck = append(pathsToCheck, b.kind+ext)
        }
-       pathsToCheck = append(pathsToCheck, "default"+ext, "default")
+
+       pathsToCheck = append(pathsToCheck, "default"+ext)
 
        for _, p := range pathsToCheck {
                fi, err := b.archeTypeFs.Stat(p)
index 2d68f76102958efe07d05699e27cda374910693e..a3692251fdf5ed888ab9ae8140c7d60c0aed322b 100644 (file)
@@ -167,7 +167,9 @@ func TestNewContentFromDirSiteFunction(t *testing.T) {
        c := qt.New(t)
 
        archetypeDir := filepath.Join("archetypes", "my-bundle")
+       defaultArchetypeDir := filepath.Join("archetypes", "default")
        c.Assert(mm.MkdirAll(archetypeDir, 0o755), qt.IsNil)
+       c.Assert(mm.MkdirAll(defaultArchetypeDir, 0o755), qt.IsNil)
 
        contentFile := `
 File: %s
@@ -176,6 +178,7 @@ site RegularPages: {{ len site.RegularPages  }}
 `
 
        c.Assert(afero.WriteFile(mm, filepath.Join(archetypeDir, "index.md"), []byte(fmt.Sprintf(contentFile, "index.md")), 0o755), qt.IsNil)
+       c.Assert(afero.WriteFile(mm, filepath.Join(defaultArchetypeDir, "index.md"), []byte("default archetype index.md"), 0o755), qt.IsNil)
 
        c.Assert(initFs(mm), qt.IsNil)
        cfg, fs := newTestCfg(c, mm)
@@ -185,8 +188,20 @@ site RegularPages: {{ len site.RegularPages  }}
        c.Assert(len(h.Sites), qt.Equals, 2)
 
        c.Assert(create.NewContent(h, "my-bundle", "post/my-post"), qt.IsNil)
-
        cContains(c, readFileFromFs(t, fs.Source, filepath.Join("content", "post/my-post/index.md")), `site RegularPages: 10`)
+
+       // Default bundle archetype
+       c.Assert(create.NewContent(h, "", "post/my-post2"), qt.IsNil)
+       cContains(c, readFileFromFs(t, fs.Source, filepath.Join("content", "post/my-post2/index.md")), `default archetype index.md`)
+
+       // Regular file with bundle kind.
+       c.Assert(create.NewContent(h, "my-bundle", "post/foo.md"), qt.IsNil)
+       cContains(c, readFileFromFs(t, fs.Source, filepath.Join("content", "post/foo.md")), `draft: true`)
+
+       // Regular files should fall back to the default archetype (we have no regular file archetype).
+       c.Assert(create.NewContent(h, "my-bundle", "mypage.md"), qt.IsNil)
+       cContains(c, readFileFromFs(t, fs.Source, filepath.Join("content", "mypage.md")), `draft: true`)
+
 }
 
 func TestNewContentFromDirNoSite(t *testing.T) {