github.com/benchkram/bob@v0.0.0-20240314204020-b7a57f2f9be9/test/e2e/version/version_suite_test.go (about) 1 package version_test 2 3 import ( 4 "io" 5 "os" 6 "testing" 7 8 "github.com/benchkram/bob/bob" 9 10 . "github.com/onsi/ginkgo" 11 . "github.com/onsi/gomega" 12 ) 13 14 var ( 15 dir string 16 version string 17 18 stdout *os.File 19 stderr *os.File 20 pr *os.File 21 pw *os.File 22 23 b *bob.B 24 ) 25 26 var _ = BeforeSuite(func() { 27 version = bob.Version 28 bob.Version = "1.0.0" 29 30 testDir, err := os.MkdirTemp("", "bob-test-version-*") 31 Expect(err).NotTo(HaveOccurred()) 32 dir = testDir 33 34 err = os.Chdir(dir) 35 Expect(err).NotTo(HaveOccurred()) 36 37 b, err = bob.Bob(bob.WithDir(dir)) 38 Expect(err).NotTo(HaveOccurred()) 39 }) 40 41 var _ = AfterSuite(func() { 42 err := os.RemoveAll(dir) 43 Expect(err).NotTo(HaveOccurred()) 44 45 bob.Version = version 46 }) 47 48 func TestStatus(t *testing.T) { 49 RegisterFailHandler(Fail) 50 RunSpecs(t, "version suite") 51 } 52 53 func capture() { 54 stdout = os.Stdout 55 stderr = os.Stderr 56 57 var err error 58 pr, pw, err = os.Pipe() 59 Expect(err).NotTo(HaveOccurred()) 60 61 os.Stdout = pw 62 os.Stderr = pw 63 } 64 65 func output() string { 66 pw.Close() 67 68 b, err := io.ReadAll(pr) 69 Expect(err).NotTo(HaveOccurred()) 70 71 pr.Close() 72 73 os.Stdout = stdout 74 os.Stderr = stderr 75 76 return string(b) 77 }