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  }