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