github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/atc/creds/conjur/manager_test.go (about) 1 package conjur_test 2 3 import ( 4 "github.com/pf-qiu/concourse/v6/atc/creds/conjur" 5 "github.com/jessevdk/go-flags" 6 7 . "github.com/onsi/ginkgo" 8 . "github.com/onsi/ginkgo/extensions/table" 9 . "github.com/onsi/gomega" 10 ) 11 12 var _ = Describe("Manager", func() { 13 var manager conjur.Manager 14 15 Describe("IsConfigured()", func() { 16 JustBeforeEach(func() { 17 _, err := flags.ParseArgs(&manager, []string{}) 18 Expect(err).To(BeNil()) 19 }) 20 21 It("fails on empty Manager", func() { 22 Expect(manager.IsConfigured()).To(BeFalse()) 23 }) 24 25 It("passes if ConjurApplianceURL is set", func() { 26 manager.ConjurApplianceUrl = "http://conjur-test" 27 Expect(manager.IsConfigured()).To(BeTrue()) 28 }) 29 }) 30 31 Describe("Validate()", func() { 32 JustBeforeEach(func() { 33 manager = conjur.Manager{ 34 ConjurApplianceUrl: "http://conjur-test", 35 ConjurAccount: "account", 36 ConjurAuthnLogin: "login", 37 ConjurAuthnApiKey: "apiKey", 38 } 39 _, err := flags.ParseArgs(&manager, []string{}) 40 Expect(err).To(BeNil()) 41 Expect(manager.PipelineSecretTemplate).To(Equal(conjur.DefaultPipelineSecretTemplate)) 42 Expect(manager.TeamSecretTemplate).To(Equal(conjur.DefaultTeamSecretTemplate)) 43 }) 44 45 It("passes on default parameters", func() { 46 Expect(manager.Validate()).To(BeNil()) 47 }) 48 49 DescribeTable("passes if all Conjur credentials are specified", 50 func(account, login, apiKey, tokenFile string) { 51 manager.ConjurApplianceUrl = "http://conjur-test" 52 manager.ConjurAccount = account 53 manager.ConjurAuthnLogin = login 54 manager.ConjurAuthnApiKey = apiKey 55 manager.ConjurAuthnTokenFile = tokenFile 56 Expect(manager.Validate()).To(BeNil()) 57 }, 58 Entry("account & login & apiKey", "account", "login", "apiKey", ""), 59 Entry("account & login & tokenFile", "account", "login", "", "tokenFile"), 60 ) 61 62 DescribeTable("fails on partial Conjur credentials", 63 func(account, login, apiKey, tokenFile string) { 64 manager.ConjurApplianceUrl = "http://conjur-test" 65 manager.ConjurAccount = account 66 manager.ConjurAuthnLogin = login 67 manager.ConjurAuthnApiKey = apiKey 68 manager.ConjurAuthnTokenFile = tokenFile 69 Expect(manager.Validate()).ToNot(BeNil()) 70 }, 71 Entry("only account", "account", "", "", ""), 72 Entry("only login", "", "login", "", ""), 73 Entry("only apiKey", "", "", "apiKey", ""), 74 Entry("only token file", "", "", "", "tokenFile"), 75 Entry("account & login", "account", "login", "", ""), 76 Entry("account & apiKey", "account", "", "apiKey", ""), 77 Entry("account & tokenFile", "account", "", "", "tokenFile"), 78 Entry("login & apiKey", "", "login", "apiKey", ""), 79 Entry("login & tokenFile", "", "login", "", "tokenFile"), 80 Entry("account & login & apiKey & tokenFile", "account", "login", "apikey", "tokenFile"), 81 ) 82 83 It("passes on pipe secret template containing less specialization", func() { 84 manager.PipelineSecretTemplate = "{{.Secret}}" 85 Expect(manager.Validate()).To(BeNil()) 86 }) 87 88 It("passes on pipe secret template containing no specialization", func() { 89 manager.PipelineSecretTemplate = "var" 90 Expect(manager.Validate()).To(BeNil()) 91 }) 92 93 It("fails on empty pipe secret template", func() { 94 manager.PipelineSecretTemplate = "" 95 Expect(manager.Validate()).ToNot(BeNil()) 96 }) 97 98 It("fails on pipe secret template containing invalid parameters", func() { 99 manager.PipelineSecretTemplate = "{{.Teams}}" 100 Expect(manager.Validate()).ToNot(BeNil()) 101 }) 102 103 It("passes on team secret template containing less specialization", func() { 104 manager.TeamSecretTemplate = "{{.Secret}}" 105 Expect(manager.Validate()).To(BeNil()) 106 }) 107 108 It("passes on team secret template containing no specialization", func() { 109 manager.TeamSecretTemplate = "var" 110 Expect(manager.Validate()).To(BeNil()) 111 }) 112 113 It("fails on empty team secret template", func() { 114 manager.TeamSecretTemplate = "" 115 Expect(manager.Validate()).ToNot(BeNil()) 116 }) 117 118 It("fails on team secret template containing invalid parameters", func() { 119 manager.TeamSecretTemplate = "{{.Teams}}" 120 Expect(manager.Validate()).ToNot(BeNil()) 121 }) 122 }) 123 })