github.com/wawandco/oxplugins@v0.7.11/tools/buffalo/template/generator_test.go (about) 1 package template 2 3 import ( 4 "os" 5 "path/filepath" 6 "testing" 7 ) 8 9 func Test_GenerateTemplate(t *testing.T) { 10 g := Generator{} 11 12 t.Run("generate template", func(t *testing.T) { 13 dir := t.TempDir() 14 if err := os.MkdirAll(filepath.Join(dir, "app", "templates"), os.ModePerm); err != nil { 15 t.Errorf("creating templates folder should not be error, but got %v", err) 16 } 17 18 if err := g.generateTemplate(dir, "amazon"); err != nil { 19 t.Errorf("should not be error, but got %v", err) 20 } 21 }) 22 23 t.Run("generate template with subfolder", func(t *testing.T) { 24 dir := t.TempDir() 25 if err := os.MkdirAll(filepath.Join(dir, "app", "templates"), os.ModePerm); err != nil { 26 t.Errorf("creating templates folder should not be error, but got %v", err) 27 } 28 29 if err := g.generateTemplate(dir, "partials/sidebar"); err != nil { 30 t.Errorf("should not be error, but got %v", err) 31 } 32 }) 33 34 t.Run("generate template with subfolder 2", func(t *testing.T) { 35 dir := t.TempDir() 36 if err := os.MkdirAll(filepath.Join(dir, "app", "templates"), os.ModePerm); err != nil { 37 t.Errorf("creating templates folder should not be error, but got %v", err) 38 } 39 40 if err := g.generateTemplate(dir, "templates/index"); err != nil { 41 t.Errorf("should not be error, but got %v", err) 42 } 43 }) 44 45 t.Run("generated template already exists", func(t *testing.T) { 46 dir := t.TempDir() 47 templatesPath := filepath.Join(dir, "app", "templates") 48 if err := os.MkdirAll(templatesPath, os.ModePerm); err != nil { 49 t.Errorf("creating templates folder should not be error, but got %v", err) 50 } 51 52 if _, err := os.Create(filepath.Join(templatesPath, "ebay.plush.html")); err != nil { 53 t.Errorf("should not be error, but got %v", err) 54 } 55 56 if err := g.generateTemplate(dir, "ebay"); err == nil { 57 t.Errorf("should error, but got %v", err) 58 } 59 }) 60 61 t.Run("generate template when templates folder do not exists", func(t *testing.T) { 62 if err := g.generateTemplate("", "user"); err == nil { 63 t.Errorf("should error, but got %v", err) 64 } 65 }) 66 } 67 68 func Test_GenerateFilePath(t *testing.T) { 69 g := Generator{} 70 cases := []struct { 71 expected string 72 fileName string 73 testName string 74 }{ 75 { 76 testName: "normal filename", 77 fileName: "user", 78 expected: "user.plush.html", 79 }, 80 { 81 testName: "filename with extension 1", 82 fileName: "amazon.plush.html", 83 expected: "amazon.plush.html", 84 }, 85 { 86 testName: "filename with extension 2", 87 fileName: "ebay.html", 88 expected: "ebay.plush.html", 89 }, 90 } 91 92 for _, c := range cases { 93 t.Run(c.testName, func(t *testing.T) { 94 filePath := g.generateFilePath("", c.fileName) 95 96 if filePath != c.expected { 97 t.Errorf("test was expecting %s, got %s", c.expected, filePath) 98 } 99 }) 100 } 101 }