var ( fc flags.FlagContext ) BeforeEach(func() { fc = flags.New() }) Describe("NewStringFlag()", func() { It("init the flag context with a new string flagset", func() { fc.Parse("-s", "test") Expect(fc.IsSet("s")).To(BeFalse()) Expect(fc.String("s")).To(Equal("")) fc.NewStringFlag("s", "s2", "setting new string flag") fc.Parse("-s", "test2") Expect(fc.IsSet("s")).To(BeTrue()) Expect(fc.IsSet("s2")).To(BeTrue()) Expect(fc.String("s")).To(Equal("test2")) Expect(fc.String("s2")).To(Equal("test2")) }) }) Describe("NewStringFlagWithDefault()", func() { It("init the flag context with a new string flagset with default value", func() { fc.Parse("-s", "test") Expect(fc.IsSet("s")).To(BeFalse()) Expect(fc.String("s")).To(Equal("")) fc.NewStringFlagWithDefault("s", "s2", "setting new string flag", "barz")
BeforeEach(func() { fc = flags.New() fc.NewIntFlag("", "a", "Usage for a") }) It("prints the shortname with one hyphen followed by the usage", func() { outputs := fc.ShowUsage(0) Expect(outputs).To(MatchRegexp("^-a Usage for a")) }) }) Context("when showing usage for multiple flags", func() { BeforeEach(func() { fc = flags.New() fc.NewIntFlag("flag-a", "a", "Usage for flag-a") fc.NewStringFlag("flag-b", "", "") fc.NewBoolFlag("flag-c", "c", "Usage for flag-c") }) It("prints each flag on its own line", func() { outputs := fc.ShowUsage(0) Expect(outputs).To(ContainSubstring("--flag-a, -a Usage for flag-a\n")) Expect(outputs).To(ContainSubstring("--flag-b\n")) Expect(outputs).To(ContainSubstring("--flag-c, -c Usage for flag-c")) }) }) Context("when given a non-zero integer for padding", func() { BeforeEach(func() { fc = flags.New() fc.NewIntFlag("flag-a", "", "")