github.com/chenbh/concourse/v6@v6.4.2/fly/integration/validate_pipeline_test.go (about) 1 package integration_test 2 3 import ( 4 "os/exec" 5 6 . "github.com/onsi/ginkgo" 7 . "github.com/onsi/gomega" 8 9 "github.com/onsi/gomega/gbytes" 10 "github.com/onsi/gomega/gexec" 11 ) 12 13 var _ = Describe("Fly CLI", func() { 14 Describe("validate-pipeline", func() { 15 It("returns valid on valid configuration", func() { 16 flyCmd := exec.Command( 17 flyPath, 18 "validate-pipeline", 19 "-c", "fixtures/testConfigValid.yml", 20 ) 21 22 sess, err := gexec.Start(flyCmd, GinkgoWriter, GinkgoWriter) 23 Expect(err).NotTo(HaveOccurred()) 24 25 Eventually(sess).Should(gbytes.Say("looks good")) 26 27 <-sess.Exited 28 Expect(sess.ExitCode()).To(Equal(0)) 29 }) 30 31 It("returns valid on valid configuration to stdout", func() { 32 flyCmd := exec.Command( 33 flyPath, 34 "validate-pipeline", 35 "-c", "fixtures/testConfigValid.yml", 36 "-o", 37 ) 38 39 sess, err := gexec.Start(flyCmd, GinkgoWriter, GinkgoWriter) 40 Expect(err).NotTo(HaveOccurred()) 41 42 Eventually(sess).Should(gbytes.Say("groups:")) 43 Eventually(sess).Should(gbytes.Say("jobs:")) 44 Eventually(sess).Should(gbytes.Say("resources:")) 45 46 <-sess.Exited 47 Expect(sess.ExitCode()).To(Equal(0)) 48 }) 49 50 It("returns valid on templated configuration with variables", func() { 51 flyCmd := exec.Command( 52 flyPath, 53 "validate-pipeline", 54 "-c", "fixtures/vars-pipeline.yml", 55 "-l", "fixtures/vars-pipeline-params-types.yml", 56 ) 57 58 sess, err := gexec.Start(flyCmd, GinkgoWriter, GinkgoWriter) 59 Expect(err).NotTo(HaveOccurred()) 60 61 Eventually(sess).Should(gbytes.Say("looks good")) 62 63 <-sess.Exited 64 Expect(sess.ExitCode()).To(Equal(0)) 65 }) 66 67 It("returns invalid on validation error", func() { 68 flyCmd := exec.Command( 69 flyPath, 70 "validate-pipeline", 71 "-c", "fixtures/testConfigError.yml", 72 ) 73 74 sess, err := gexec.Start(flyCmd, GinkgoWriter, GinkgoWriter) 75 Expect(err).NotTo(HaveOccurred()) 76 77 Eventually(sess.Err).Should(gbytes.Say("WARNING:")) 78 Eventually(sess.Err).Should(gbytes.Say(" - invalid resources:")) 79 80 <-sess.Exited 81 Expect(sess.ExitCode()).To(Equal(1)) 82 83 Expect(sess.Err).To(gbytes.Say("configuration invalid")) 84 }) 85 86 It("returns invalid on validation warning with strict", func() { 87 flyCmd := exec.Command( 88 flyPath, 89 "validate-pipeline", 90 "-c", "fixtures/testConfigWarning.yml", 91 "--strict", 92 ) 93 94 sess, err := gexec.Start(flyCmd, GinkgoWriter, GinkgoWriter) 95 Expect(err).NotTo(HaveOccurred()) 96 97 Eventually(sess.Err).Should(gbytes.Say("DEPRECATION WARNING:")) 98 Eventually(sess.Err).Should(gbytes.Say(" - jobs.some-job.plan")) 99 100 <-sess.Exited 101 Expect(sess.ExitCode()).To(Equal(1)) 102 103 Expect(sess.Err).To(gbytes.Say("configuration invalid")) 104 }) 105 106 It("returns valid on a pipeline that contains var_sources", func() { 107 flyCmd := exec.Command( 108 flyPath, 109 "validate-pipeline", 110 "-c", "fixtures/var_sources_pipeline.yml", 111 ) 112 113 sess, err := gexec.Start(flyCmd, GinkgoWriter, GinkgoWriter) 114 Expect(err).NotTo(HaveOccurred()) 115 116 <-sess.Exited 117 Expect(sess.ExitCode()).To(Equal(0)) 118 }) 119 }) 120 })