package cmd import ( "bytes" "io/ioutil" "os" "github.com/golang/mock/gomock" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "github.com/jenkins-zh/jenkins-cli/mock/mhttp" ) var _ = Describe("Runner test command", func() { var ( ctrl *gomock.Controller roundTripper *mhttp.MockRoundTripper ) BeforeEach(func() { ctrl = gomock.NewController(GinkgoT()) roundTripper = mhttp.NewMockRoundTripper(ctrl) runnerOption.RoundTripper = roundTripper rootCmd.SetArgs([]string{}) rootOptions.Jenkins = "" rootOptions.ConfigFile = "test.yaml" }) AfterEach(func() { rootCmd.SetArgs([]string{}) os.Remove(rootOptions.ConfigFile) rootOptions.ConfigFile = "" ctrl.Finish() }) Context("basic cases", func() { It("should pass", func() { data, err := generateSampleConfig() Expect(err).To(BeNil()) err = ioutil.WriteFile(rootOptions.ConfigFile, data, 0664) Expect(err).To(BeNil()) rootCmd.SetArgs([]string{"runner", "--plugin-path=home/sladyn/plugin.txt", "--jenkinsfile-path=home/sladyn/Jenkinsfile"}) buf := new(bytes.Buffer) rootCmd.SetOutput(buf) _, err = rootCmd.ExecuteC() Expect(err).To(BeNil()) }) It("Empty file path", func() { data, err := generateSampleConfig() Expect(err).To(BeNil()) err = ioutil.WriteFile(rootOptions.ConfigFile, data, 0664) Expect(err).To(BeNil()) rootCmd.SetArgs([]string{"runner", "--path=home/sladyn/sladyn.go"}) buf := new(bytes.Buffer) rootCmd.SetOutput(buf) _, err = rootCmd.ExecuteC() Expect(err).To(HaveOccurred()) }) }) })