@@ -6,19 +6,27 @@ import (
6
6
"time"
7
7
8
8
"github.com/stretchr/testify/assert"
9
- "github.com/versent/saml2aws/v2"
9
+
10
+ saml2aws "github.com/versent/saml2aws/v2"
10
11
"github.com/versent/saml2aws/v2/pkg/awsconfig"
11
12
"github.com/versent/saml2aws/v2/pkg/cfg"
12
13
"github.com/versent/saml2aws/v2/pkg/creds"
13
14
"github.com/versent/saml2aws/v2/pkg/flags"
14
15
)
15
16
16
17
func TestResolveLoginDetailsWithFlags (t * testing.T ) {
18
+ commonFlags := & flags.CommonFlags {
19
+ URL : "https://id.example.com" ,
20
+ Username : "wolfeidau" ,
21
+ Password : "testtestlol" ,
22
+ MFAToken : "123456" ,
23
+ SkipPrompt : true ,
24
+ }
17
25
18
- commonFlags := & flags.CommonFlags {URL : "https://id.example.com" , Username : "wolfeidau" , Password : "testtestlol" , MFAIPAddress : "127.0.0.1" , MFAToken : "123456" , SkipPrompt : true }
19
26
loginFlags := & flags.LoginExecFlags {CommonFlags : commonFlags }
20
27
21
28
idpa := & cfg.IDPAccount {
29
+ Name : "AccountName" ,
22
30
URL : "https://id.example.com" ,
23
31
MFA : "none" ,
24
32
Provider : "Ping" ,
@@ -27,16 +35,30 @@ func TestResolveLoginDetailsWithFlags(t *testing.T) {
27
35
loginDetails , err := resolveLoginDetails (idpa , loginFlags )
28
36
29
37
assert .Empty (t , err )
30
- assert .Equal (t , & creds.LoginDetails {Username : "wolfeidau" , Password : "testtestlol" , URL : "https://id.example.com" , MFAToken : "123456" , MFAIPAddress : "127.0.0.1" }, loginDetails )
38
+ assert .Equal (t ,
39
+ & creds.LoginDetails {
40
+ IdpName : "AccountName" ,
41
+ IdpProvider : "Ping" ,
42
+ Username : "wolfeidau" ,
43
+ Password : "testtestlol" ,
44
+ URL : "https://id.example.com" ,
45
+ MFAToken : "123456" ,
46
+ }, loginDetails )
31
47
}
32
48
33
49
func TestOktaResolveLoginDetailsWithFlags (t * testing.T ) {
34
-
35
50
// Default state - user did not supply values for DisableSessions and DisableSessions
36
- commonFlags := & flags.CommonFlags {URL : "https://id.example.com" , Username : "testuser" , Password : "testtestlol" , MFAToken : "123456" , SkipPrompt : true }
51
+ commonFlags := & flags.CommonFlags {
52
+ URL : "https://id.example.com" ,
53
+ Username : "testuser" ,
54
+ Password : "testtestlol" ,
55
+ MFAToken : "123456" ,
56
+ SkipPrompt : true ,
57
+ }
37
58
loginFlags := & flags.LoginExecFlags {CommonFlags : commonFlags }
38
59
39
60
idpa := & cfg.IDPAccount {
61
+ Name : "AnotherAccountName" ,
40
62
URL : "https://id.example.com" ,
41
63
MFA : "none" ,
42
64
Provider : "Okta" ,
@@ -47,24 +69,45 @@ func TestOktaResolveLoginDetailsWithFlags(t *testing.T) {
47
69
assert .Nil (t , err )
48
70
assert .False (t , idpa .DisableSessions , fmt .Errorf ("default state, DisableSessions should be false" ))
49
71
assert .False (t , idpa .DisableRememberDevice , fmt .Errorf ("default state, DisableRememberDevice should be false" ))
50
- assert .Equal (t , & creds.LoginDetails {Username : "testuser" , Password : "testtestlol" , URL : "https://id.example.com" , MFAToken : "123456" }, loginDetails )
72
+ assert .Equal (t ,
73
+ & creds.LoginDetails {
74
+ IdpName : "AnotherAccountName" ,
75
+ IdpProvider : "Okta" ,
76
+ Username : "testuser" ,
77
+ Password : "testtestlol" ,
78
+ URL : "https://id.example.com" ,
79
+ MFAToken : "123456" ,
80
+ }, loginDetails )
51
81
52
82
// User disabled keychain, resolveLoginDetails should set the account's DisableSessions and DisableSessions fields to true
53
83
54
- commonFlags = & flags.CommonFlags {URL : "https://id.example.com" , Username : "testuser" , Password : "testtestlol" , MFAToken : "123456" , SkipPrompt : true , DisableKeychain : true }
84
+ commonFlags = & flags.CommonFlags {
85
+ URL : "https://id.example.com" ,
86
+ Username : "testuser" ,
87
+ Password : "testtestlol" ,
88
+ MFAToken : "123456" ,
89
+ SkipPrompt : true ,
90
+ DisableKeychain : true ,
91
+ }
55
92
loginFlags = & flags.LoginExecFlags {CommonFlags : commonFlags }
56
93
57
94
loginDetails , err = resolveLoginDetails (idpa , loginFlags )
58
95
59
96
assert .Nil (t , err )
60
97
assert .True (t , idpa .DisableSessions , fmt .Errorf ("user disabled keychain, DisableSessions should be true" ))
61
98
assert .True (t , idpa .DisableRememberDevice , fmt .Errorf ("user disabled keychain, DisableRememberDevice should be true" ))
62
- assert .Equal (t , & creds.LoginDetails {Username : "testuser" , Password : "testtestlol" , URL : "https://id.example.com" , MFAToken : "123456" }, loginDetails )
63
-
99
+ assert .Equal (t ,
100
+ & creds.LoginDetails {
101
+ IdpName : "AnotherAccountName" ,
102
+ IdpProvider : "Okta" ,
103
+ Username : "testuser" ,
104
+ Password : "testtestlol" ,
105
+ URL : "https://id.example.com" ,
106
+ MFAToken : "123456" ,
107
+ }, loginDetails )
64
108
}
65
109
66
110
func TestResolveRoleSingleEntry (t * testing.T ) {
67
-
68
111
adminRole := & saml2aws.AWSRole {
69
112
Name : "admin" ,
70
113
RoleARN : "arn:aws:iam::456456456456:saml-provider/example-idp,arn:aws:iam::456456456456:role/admin" ,
@@ -81,7 +124,6 @@ func TestResolveRoleSingleEntry(t *testing.T) {
81
124
}
82
125
83
126
func TestCredentialsToCredentialProcess (t * testing.T ) {
84
-
85
127
aws_creds := & awsconfig.AWSCredentials {
86
128
AWSAccessKey : "someawsaccesskey" ,
87
129
AWSSecretKey : "somesecretkey" ,
0 commit comments