github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/atc/creds/secretsmanager/manager_test.go (about) 1 package secretsmanager_test 2 3 import ( 4 "github.com/pf-qiu/concourse/v6/atc/creds/secretsmanager" 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 secretsmanager.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 AwsRegion is set", func() { 26 manager.AwsRegion = "test-region" 27 Expect(manager.IsConfigured()).To(BeTrue()) 28 }) 29 }) 30 31 Describe("Validate()", func() { 32 JustBeforeEach(func() { 33 manager = secretsmanager.Manager{AwsRegion: "test-region"} 34 _, err := flags.ParseArgs(&manager, []string{}) 35 Expect(err).To(BeNil()) 36 Expect(manager.PipelineSecretTemplate).To(Equal(secretsmanager.DefaultPipelineSecretTemplate)) 37 Expect(manager.TeamSecretTemplate).To(Equal(secretsmanager.DefaultTeamSecretTemplate)) 38 }) 39 40 It("passes on default parameters", func() { 41 Expect(manager.Validate()).To(BeNil()) 42 }) 43 44 DescribeTable("passes if all aws credentials are specified", 45 func(accessKey, secretKey, sessionToken string) { 46 manager.AwsAccessKeyID = accessKey 47 manager.AwsSecretAccessKey = secretKey 48 manager.AwsSessionToken = sessionToken 49 Expect(manager.Validate()).To(BeNil()) 50 }, 51 Entry("all values", "access", "secret", "token"), 52 Entry("access & secret", "access", "secret", ""), 53 ) 54 55 DescribeTable("fails on partial AWS credentials", 56 func(accessKey, secretKey, sessionToken string) { 57 manager.AwsAccessKeyID = accessKey 58 manager.AwsSecretAccessKey = secretKey 59 manager.AwsSessionToken = sessionToken 60 Expect(manager.Validate()).ToNot(BeNil()) 61 }, 62 Entry("only access", "access", "", ""), 63 Entry("access & token", "access", "", "token"), 64 Entry("only secret", "", "secret", ""), 65 Entry("secret & token", "", "secret", "token"), 66 Entry("only token", "", "", "token"), 67 ) 68 69 It("passes on pipe secret template containing less specialization", func() { 70 manager.PipelineSecretTemplate = "{{.Secret}}" 71 Expect(manager.Validate()).To(BeNil()) 72 }) 73 74 It("passes on pipe secret template containing no specialization", func() { 75 manager.PipelineSecretTemplate = "var" 76 Expect(manager.Validate()).To(BeNil()) 77 }) 78 79 It("fails on empty pipe secret template", func() { 80 manager.PipelineSecretTemplate = "" 81 Expect(manager.Validate()).ToNot(BeNil()) 82 }) 83 84 It("fails on pipe secret template containing invalid parameters", func() { 85 manager.PipelineSecretTemplate = "{{.Teams}}" 86 Expect(manager.Validate()).ToNot(BeNil()) 87 }) 88 89 It("passes on team secret template containing less specialization", func() { 90 manager.TeamSecretTemplate = "{{.Secret}}" 91 Expect(manager.Validate()).To(BeNil()) 92 }) 93 94 It("passes on team secret template containing no specialization", func() { 95 manager.TeamSecretTemplate = "var" 96 Expect(manager.Validate()).To(BeNil()) 97 }) 98 99 It("fails on empty team secret template", func() { 100 manager.TeamSecretTemplate = "" 101 Expect(manager.Validate()).ToNot(BeNil()) 102 }) 103 104 It("fails on team secret template containing invalid parameters", func() { 105 manager.TeamSecretTemplate = "{{.Teams}}" 106 Expect(manager.Validate()).ToNot(BeNil()) 107 }) 108 }) 109 })