@@ -83,7 +83,7 @@ func TestProvider_NewControllerToken(t *testing.T) {
8383 }
8484
8585 provider := aws.Provider {Implementation : impl }
86- token , err := provider .NewControllerToken (context . Background (), opts ... )
86+ token , err := provider .NewControllerToken (t . Context (), opts ... )
8787
8888 if tt .err == "" {
8989 g .Expect (err ).NotTo (HaveOccurred ())
@@ -538,6 +538,63 @@ func TestProvider_GetAccessTokenOptionsForCluster(t *testing.T) {
538538 g .Expect (o .STSRegion ).To (Equal ("us-west-2" ))
539539}
540540
541+ func TestGetRegionFromCodeCommitURL (t * testing.T ) {
542+ for _ , tt := range []struct {
543+ name string
544+ gitURL string
545+ expectedRegion string
546+ err string
547+ }{
548+ {
549+ name : "valid CodeCommit URL" ,
550+ gitURL : "https://git-codecommit.us-east-1.amazonaws.com/v1/repos/test-repo" ,
551+ expectedRegion : "us-east-1" ,
552+ },
553+ {
554+ name : "valid CodeCommit FIPS URL" ,
555+ gitURL : "https://git-codecommit-fips.us-west-2.amazonaws.com/v1/repos/test-repo" ,
556+ expectedRegion : "us-west-2" ,
557+ },
558+ {
559+ name : "valid CodeCommit China URL" ,
560+ gitURL : "https://git-codecommit.cn-north-1.amazonaws.com.cn/v1/repos/test-repo" ,
561+ expectedRegion : "cn-north-1" ,
562+ },
563+ {
564+ name : "nil URL" ,
565+ err : "Git URL must be specified for AWS CodeCommit authentication" ,
566+ },
567+ {
568+ name : "non-HTTPS URL" ,
569+ gitURL : "http://git-codecommit.us-east-1.amazonaws.com/v1/repos/test-repo" ,
570+ err : "AWS CodeCommit authentication requires an HTTPS Git URL" ,
571+ },
572+ {
573+ name : "invalid CodeCommit URL" ,
574+ gitURL : "https://github.com/org/repo" ,
575+ err : "invalid AWS CodeCommit Git URL: github.com" ,
576+ },
577+ } {
578+ t .Run (tt .name , func (t * testing.T ) {
579+ g := NewWithT (t )
580+ var parsedURL * url.URL
581+ if tt .gitURL != "" {
582+ var err error
583+ parsedURL , err = url .Parse (tt .gitURL )
584+ g .Expect (err ).NotTo (HaveOccurred ())
585+ }
586+ region , err := aws .GetRegionFromCodeCommitURL (parsedURL )
587+ if tt .err != "" {
588+ g .Expect (err ).To (HaveOccurred ())
589+ g .Expect (err .Error ()).To (Equal (tt .err ))
590+ } else {
591+ g .Expect (err ).NotTo (HaveOccurred ())
592+ g .Expect (region ).To (Equal (tt .expectedRegion ))
593+ }
594+ })
595+ }
596+ }
597+
541598func TestProvider_NewCodeCommitGitCredentials (t * testing.T ) {
542599 invalidToken := & generic.Token {Token : "invalid" , ExpiresAt : time .Now ().Add (time .Hour )}
543600 proxyUrl := url.URL {Scheme : "http" , Host : "proxy.example.com" }
0 commit comments