1package main 2 3import ( 4 "io/ioutil" 5 "os" 6 "os/exec" 7 8 . "github.com/onsi/ginkgo" 9 . "github.com/onsi/gomega" 10 . "github.com/onsi/gomega/gbytes" 11 . "github.com/onsi/gomega/gexec" 12) 13 14var _ = Describe("Running spiff", func() { 15 Describe("merge", func() { 16 var merge *Session 17 18 Context("when given a bad file path", func() { 19 BeforeEach(func() { 20 var err error 21 merge, err = Start(exec.Command(spiff, "merge", "foo.yml"), GinkgoWriter, GinkgoWriter) 22 Expect(err).NotTo(HaveOccurred()) 23 }) 24 25 It("says file not found", func() { 26 Expect(merge.Wait()).To(Exit(1)) 27 Expect(merge.Err).To(Say("foo.yml: no such file or directory")) 28 }) 29 }) 30 31 Context("when given a single file", func() { 32 var basicTemplate *os.File 33 34 BeforeEach(func() { 35 var err error 36 37 basicTemplate, err = ioutil.TempFile(os.TempDir(), "basic.yml") 38 Expect(err).NotTo(HaveOccurred()) 39 basicTemplate.Write([]byte(` 40--- 41foo: bar 42`)) 43 merge, err = Start(exec.Command(spiff, "merge", basicTemplate.Name()), GinkgoWriter, GinkgoWriter) 44 Expect(err).NotTo(HaveOccurred()) 45 }) 46 47 AfterEach(func() { 48 os.Remove(basicTemplate.Name()) 49 }) 50 51 It("resolves the template and prints it out", func() { 52 Expect(merge.Wait()).To(Exit(0)) 53 Expect(merge.Out).To(Say(`foo: bar`)) 54 }) 55 }) 56 }) 57}) 58