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  }