@@ -3,6 +3,7 @@ package auth_test
3
3
import (
4
4
"context"
5
5
"regexp"
6
+ "strings"
6
7
"testing"
7
8
8
9
"github.com/aws/aws-sdk-go-v2/aws"
@@ -15,27 +16,51 @@ func TestBuildAuthToken(t *testing.T) {
15
16
region string
16
17
user string
17
18
expectedRegex string
19
+ expectedError string
18
20
}{
19
21
{
20
- "https://prod-instance.us-east-1.rds.amazonaws.com:3306" ,
21
- "us-west-2" ,
22
- "mysqlUser" ,
23
- `^prod-instance\.us-east-1\.rds\.amazonaws\.com:3306\?Action=connect.*?DBUser=mysqlUser.*` ,
22
+ endpoint : "https://prod-instance.us-east-1.rds.amazonaws.com:3306" ,
23
+ region : "us-west-2" ,
24
+ user : "mysqlUser" ,
25
+ expectedRegex : `^prod-instance\.us-east-1\.rds\.amazonaws\.com:3306\?Action=connect.*?DBUser=mysqlUser.*` ,
24
26
},
25
27
{
26
- "prod-instance.us-east-1.rds.amazonaws.com:3306" ,
27
- "us-west-2" ,
28
- "mysqlUser" ,
29
- `^prod-instance\.us-east-1\.rds\.amazonaws\.com:3306\?Action=connect.*?DBUser=mysqlUser.*` ,
28
+ endpoint : "prod-instance.us-east-1.rds.amazonaws.com:3306" ,
29
+ region : "us-west-2" ,
30
+ user : "mysqlUser" ,
31
+ expectedRegex : `^prod-instance\.us-east-1\.rds\.amazonaws\.com:3306\?Action=connect.*?DBUser=mysqlUser.*` ,
32
+ },
33
+ {
34
+ endpoint : "prod-instance.us-east-1.rds.amazonaws.com" ,
35
+ region : "us-west-2" ,
36
+ user : "mysqlUser" ,
37
+ expectedError : "port" ,
38
+ },
39
+ {
40
+ endpoint : "prod-instance.us-east-1.rds.amazonaws.com:kakasdkasd" ,
41
+ region : "us-west-2" ,
42
+ user : "mysqlUser" ,
43
+ expectedError : "port" ,
30
44
},
31
45
}
32
46
33
47
for _ , c := range cases {
34
48
creds := & staticCredentials {AccessKey : "AKID" , SecretKey : "SECRET" , Session : "SESSION" }
35
49
url , err := auth .BuildAuthToken (context .Background (), c .endpoint , c .region , c .user , creds )
36
- if err != nil {
37
- t .Errorf ("expect no error, got %v" , err )
50
+ if len (c .expectedError ) > 0 {
51
+ if err != nil {
52
+ if ! strings .Contains (err .Error (), c .expectedError ) {
53
+ t .Fatalf ("expect err: %v, actual err: %v" , c .expectedError , err )
54
+ } else {
55
+ continue
56
+ }
57
+ } else {
58
+ t .Fatalf ("expect err: %v, actual err: %v" , c .expectedError , err )
59
+ }
60
+ } else if err != nil {
61
+ t .Fatalf ("expect no err, got: %v" , err )
38
62
}
63
+
39
64
if re , a := regexp .MustCompile (c .expectedRegex ), url ; ! re .MatchString (a ) {
40
65
t .Errorf ("expect %s to match %s" , re , a )
41
66
}
0 commit comments