@@ -28,12 +28,15 @@ import (
28
28
29
29
func TestRetrieveCredentials (t * testing.T ) {
30
30
var (
31
- validSecret = "qaRZGEbnQNNvmaeTLqy8Bxs22wLZ6H7obIiNSveTLPdoQuylANnuy6WBOw16XoqH"
32
- validClient = "CQ4iZ5sebOfhGRwUn3IV0r1YFMNrMTIx"
33
- validConfig = & Credentials {validClient , validSecret }
34
- invalidConfig = & Credentials {"" , validSecret }
35
- clientEnv = EnvPrefix + "_CLIENT"
36
- secretEnv = EnvPrefix + "_SECRET"
31
+ validSecret = "qaRZGEbnQNNvmaeTLqy8Bxs22wLZ6H7obIiNSveTLPdoQuylANnuy6WBOw16XoqH"
32
+ validClient = "CQ4iZ5sebOfhGRwUn3IV0r1YFMNrMTIx"
33
+ validOrganization = "dc6a6159-3cd5-41a2-b391-553b1351cd98"
34
+ validConfig = & Credentials {Client : validClient , Secret : validSecret }
35
+ validWithOptionalConfig = & Credentials {Client : validClient , Secret : validSecret , Organization : validOrganization }
36
+ invalidConfig = & Credentials {Client : "" , Secret : validSecret }
37
+ clientEnv = EnvPrefix + "_CLIENT"
38
+ secretEnv = EnvPrefix + "_SECRET"
39
+ organizationEnv = EnvPrefix + "_ORGANIZATION"
37
40
)
38
41
39
42
tests := []struct {
@@ -44,7 +47,7 @@ func TestRetrieveCredentials(t *testing.T) {
44
47
wantedErr bool
45
48
}{
46
49
{
47
- name : "valid credentials written in env" ,
50
+ name : "valid credentials with only mandatory params written in env" ,
48
51
pre : func () {
49
52
os .Setenv (clientEnv , validConfig .Client )
50
53
os .Setenv (secretEnv , validConfig .Secret )
@@ -57,6 +60,22 @@ func TestRetrieveCredentials(t *testing.T) {
57
60
wantedErr : false ,
58
61
},
59
62
63
+ {
64
+ name : "valid credentials with optional params written in env" ,
65
+ pre : func () {
66
+ os .Setenv (clientEnv , validWithOptionalConfig .Client )
67
+ os .Setenv (secretEnv , validWithOptionalConfig .Secret )
68
+ os .Setenv (organizationEnv , validWithOptionalConfig .Organization )
69
+ },
70
+ post : func () {
71
+ os .Unsetenv (clientEnv )
72
+ os .Unsetenv (secretEnv )
73
+ os .Unsetenv (organizationEnv )
74
+ },
75
+ wantedConfig : validWithOptionalConfig ,
76
+ wantedErr : false ,
77
+ },
78
+
60
79
{
61
80
name : "invalid credentials written in env" ,
62
81
pre : func () {
@@ -92,6 +111,27 @@ func TestRetrieveCredentials(t *testing.T) {
92
111
wantedErr : false ,
93
112
},
94
113
114
+ {
115
+ name : "valid credentials with optional params written in parent of cwd" ,
116
+ pre : func () {
117
+ parent := "test-parent"
118
+ cwd := "test-parent/test-cwd"
119
+ os .MkdirAll (cwd , os .FileMode (0777 ))
120
+ // Write valid credentials in parent dir
121
+ os .Chdir (parent )
122
+ b , _ := json .Marshal (validWithOptionalConfig )
123
+ os .WriteFile (CredentialsFilename + ".json" , b , os .FileMode (0777 ))
124
+ // Cwd has no credentials file
125
+ os .Chdir ("test-cwd" )
126
+ },
127
+ post : func () {
128
+ os .Chdir ("../.." )
129
+ os .RemoveAll ("test-parent" )
130
+ },
131
+ wantedConfig : validWithOptionalConfig ,
132
+ wantedErr : false ,
133
+ },
134
+
95
135
{
96
136
name : "invalid credentials written in cwd, ignore credentials of parent dir" ,
97
137
pre : func () {
@@ -161,21 +201,24 @@ func TestRetrieveCredentials(t *testing.T) {
161
201
162
202
func TestValidate (t * testing.T ) {
163
203
var (
164
- validSecret = "qaRZGEbnQNNvmaeTLqy8Bxs22wLZ6H7obIiNSveTLPdoQuylANnuy6WBOw16XoqH"
165
- validClient = "CQ4iZ5sebOfhGRwUn3IV0r1YFMNrMTIx"
204
+ validSecret = "qaRZGEbnQNNvmaeTLqy8Bxs22wLZ6H7obIiNSveTLPdoQuylANnuy6WBOw16XoqH"
205
+ validClient = "CQ4iZ5sebOfhGRwUn3IV0r1YFMNrMTIx"
206
+ validOrganization = "dc6a6159-3cd5-41a2-b391-553b1351cd98"
166
207
)
167
208
tests := []struct {
168
209
name string
169
210
config * Credentials
170
211
valid bool
171
212
}{
172
213
{
173
- name : "valid credentials" ,
174
- config : & Credentials {
175
- Client : validClient ,
176
- Secret : validSecret ,
177
- },
178
- valid : true ,
214
+ name : "valid credentials" ,
215
+ config : & Credentials {Client : validClient , Secret : validSecret , Organization : validOrganization },
216
+ valid : true ,
217
+ },
218
+ {
219
+ name : "valid credentials, organization is optional" ,
220
+ config : & Credentials {Client : validClient , Secret : validSecret , Organization : "" },
221
+ valid : true ,
179
222
},
180
223
{
181
224
name : "invalid client id" ,
@@ -209,10 +252,11 @@ func TestValidate(t *testing.T) {
209
252
}
210
253
}
211
254
212
- func TestIsEmpty (t * testing.T ) {
255
+ func TestComplete (t * testing.T ) {
213
256
var (
214
- validSecret = "qaRZGEbnQNNvmaeTLqy8Bxs22wLZ6H7obIiNSveTLPdoQuylANnuy6WBOw16XoqH"
215
- validClient = "CQ4iZ5sebOfhGRwUn3IV0r1YFMNrMTIx"
257
+ validSecret = "qaRZGEbnQNNvmaeTLqy8Bxs22wLZ6H7obIiNSveTLPdoQuylANnuy6WBOw16XoqH"
258
+ validClient = "CQ4iZ5sebOfhGRwUn3IV0r1YFMNrMTIx"
259
+ validOrganization = "dc6a6159-3cd5-41a2-b391-553b1351cd98"
216
260
)
217
261
tests := []struct {
218
262
name string
@@ -221,7 +265,12 @@ func TestIsEmpty(t *testing.T) {
221
265
}{
222
266
{
223
267
name : "empty credentials" ,
224
- config : & Credentials {Client : "" , Secret : "" },
268
+ config : & Credentials {Client : "" , Secret : "" , Organization : "" },
269
+ want : true ,
270
+ },
271
+ {
272
+ name : "empty mandatory credentials - optionals given" ,
273
+ config : & Credentials {Client : "" , Secret : "" , Organization : validOrganization },
225
274
want : true ,
226
275
},
227
276
{
@@ -238,7 +287,7 @@ func TestIsEmpty(t *testing.T) {
238
287
239
288
for _ , tt := range tests {
240
289
t .Run (tt .name , func (t * testing.T ) {
241
- got := tt .config .IsEmpty ()
290
+ got := tt .config .Complete ()
242
291
if got != tt .want {
243
292
t .Errorf ("Expected %v but got %v, with credentials: %v" , tt .want , got , tt .config )
244
293
}
0 commit comments