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