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  })