github.com/benchkram/bob@v0.0.0-20240314204020-b7a57f2f9be9/test/e2e/project/project_suite_test.go (about) 1 package projectest 2 3 import ( 4 "os" 5 "path/filepath" 6 "strings" 7 "testing" 8 9 "github.com/benchkram/bob/bob" 10 "github.com/benchkram/bob/bob/bobfile" 11 12 . "github.com/onsi/ginkgo" 13 . "github.com/onsi/gomega" 14 ) 15 16 var ( 17 dir string 18 version string 19 ) 20 21 var _ = BeforeSuite(func() { 22 version = bob.Version 23 bob.Version = "1.0.0" 24 25 // Initialize mock bob files from local directory 26 bobFiles := []string{ 27 "without_project_name", 28 "with_project_name", 29 "with_second_level", 30 "with_second_level/second_level", 31 } 32 nameToBobfile := make(map[string]*bobfile.Bobfile) 33 for _, name := range bobFiles { 34 abs, err := filepath.Abs("./" + name) 35 Expect(err).NotTo(HaveOccurred()) 36 bf, err := bobfile.BobfileRead(abs) 37 Expect(err).NotTo(HaveOccurred()) 38 nameToBobfile[strings.ReplaceAll(name, "/", "_")] = bf 39 } 40 41 testDir, err := os.MkdirTemp("", "bob-test-project-*") 42 Expect(err).NotTo(HaveOccurred()) 43 dir = testDir 44 err = os.Mkdir(dir+"/second_level", 0700) 45 Expect(err).NotTo(HaveOccurred()) 46 47 err = os.Chdir(dir) 48 Expect(err).NotTo(HaveOccurred()) 49 50 // Save bob files in dir to have them available in tests 51 for name, bf := range nameToBobfile { 52 err = bf.BobfileSave(dir, name+".yaml") 53 Expect(err).NotTo(HaveOccurred()) 54 } 55 }) 56 57 var _ = AfterSuite(func() { 58 err := os.RemoveAll(dir) 59 Expect(err).NotTo(HaveOccurred()) 60 bob.Version = version 61 }) 62 63 func TestProjectName(t *testing.T) { 64 RegisterFailHandler(Fail) 65 RunSpecs(t, "project name suite") 66 } 67 68 func useBobFile(name string) { 69 err := os.Rename(name+".yaml", "bob.yaml") 70 Expect(err).NotTo(HaveOccurred()) 71 } 72 73 func releaseBobfile(name string) { 74 err := os.Rename("bob.yaml", name+".yaml") 75 Expect(err).NotTo(HaveOccurred()) 76 }