Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit8298c61

Browse files
committed
Refactor test apps
They are named now so their purpose is clearer.Also, getting apps can be done as a user so do that instead.
1 parent139f004 commit8298c61

File tree

1 file changed

+71
-59
lines changed

1 file changed

+71
-59
lines changed

‎enterprise/coderd/oauth2_test.go

Lines changed: 71 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import (
1313
"github.com/coder/coder/v2/testutil"
1414
)
1515

16-
funcTestOAuthApps(t*testing.T) {
16+
funcTestOAuth2ProviderApps(t*testing.T) {
1717
t.Parallel()
1818

1919
t.Run("Validation",func(t*testing.T) {
@@ -162,71 +162,62 @@ func TestOAuthApps(t *testing.T) {
162162
t.Run("DeleteNonExisting",func(t*testing.T) {
163163
t.Parallel()
164164

165-
client,_:=coderdenttest.New(t,&coderdenttest.Options{LicenseOptions:&coderdenttest.LicenseOptions{
165+
client,owner:=coderdenttest.New(t,&coderdenttest.Options{LicenseOptions:&coderdenttest.LicenseOptions{
166166
Features: license.Features{
167167
codersdk.FeatureOAuth2Provider:1,
168168
},
169169
}})
170+
another,_:=coderdtest.CreateAnotherUser(t,client,owner.OrganizationID)
170171

171172
ctx:=testutil.Context(t,testutil.WaitLong)
172173

173-
//nolint:gocritic // OAauth2 app management requires owner permission.
174-
_,err:=client.OAuth2ProviderApp(ctx,uuid.New())
174+
_,err:=another.OAuth2ProviderApp(ctx,uuid.New())
175175
require.Error(t,err)
176176
})
177177

178178
t.Run("OK",func(t*testing.T) {
179179
t.Parallel()
180180

181-
client,_:=coderdenttest.New(t,&coderdenttest.Options{LicenseOptions:&coderdenttest.LicenseOptions{
181+
client,owner:=coderdenttest.New(t,&coderdenttest.Options{LicenseOptions:&coderdenttest.LicenseOptions{
182182
Features: license.Features{
183183
codersdk.FeatureOAuth2Provider:1,
184184
},
185185
}})
186+
another,_:=coderdtest.CreateAnotherUser(t,client,owner.OrganizationID)
186187

187188
ctx:=testutil.Context(t,testutil.WaitLong)
188189

189190
// No apps yet.
190-
//nolint:gocritic // OAauth2 app management requires owner permission.
191-
apps,err:=client.OAuth2ProviderApps(ctx)
191+
apps,err:=another.OAuth2ProviderApps(ctx)
192192
require.NoError(t,err)
193193
require.Len(t,apps,0)
194194

195195
// Should be able to add apps.
196-
expected:= []codersdk.OAuth2ProviderApp{}
197-
fori:=0;i<5;i++ {
198-
postReq:= codersdk.PostOAuth2ProviderAppRequest{
199-
Name:"foo-"+strconv.Itoa(i),
200-
CallbackURL:"http://"+strconv.Itoa(i)+".localhost:3000",
201-
}
202-
//nolint:gocritic // OAauth2 app management requires owner permission.
203-
app,err:=client.PostOAuth2ProviderApp(ctx,postReq)
204-
require.NoError(t,err)
205-
require.Equal(t,postReq.Name,app.Name)
206-
require.Equal(t,postReq.CallbackURL,app.CallbackURL)
207-
expected=append(expected,app)
196+
expected:=generateApps(ctx,t,client,"get-apps")
197+
expectedOrder:= []codersdk.OAuth2ProviderApp{
198+
expected.Default,expected.NoPort,expected.Subdomain,
199+
expected.Extra[0],expected.Extra[1],
208200
}
209201

210202
// Should get all the apps now.
211-
//nolint:gocritic // OAauth2 app management requires owner permission.
212-
apps,err=client.OAuth2ProviderApps(ctx)
203+
apps,err=another.OAuth2ProviderApps(ctx)
213204
require.NoError(t,err)
214205
require.Len(t,apps,5)
215-
require.Equal(t,expected,apps)
206+
require.Equal(t,expectedOrder,apps)
216207

217208
// Should be able to keep the same name when updating.
218209
req:= codersdk.PutOAuth2ProviderAppRequest{
219-
Name:expected[0].Name,
210+
Name:expected.Default.Name,
220211
CallbackURL:"http://coder.com",
221212
Icon:"test",
222213
}
223214
//nolint:gocritic // OAauth2 app management requires owner permission.
224-
newApp,err:=client.PutOAuth2ProviderApp(ctx,expected[0].ID,req)
215+
newApp,err:=client.PutOAuth2ProviderApp(ctx,expected.Default.ID,req)
225216
require.NoError(t,err)
226217
require.Equal(t,req.Name,newApp.Name)
227218
require.Equal(t,req.CallbackURL,newApp.CallbackURL)
228219
require.Equal(t,req.Icon,newApp.Icon)
229-
require.Equal(t,expected[0].ID,newApp.ID)
220+
require.Equal(t,expected.Default.ID,newApp.ID)
230221

231222
// Should be able to update name.
232223
req= codersdk.PutOAuth2ProviderAppRequest{
@@ -235,34 +226,33 @@ func TestOAuthApps(t *testing.T) {
235226
Icon:"test",
236227
}
237228
//nolint:gocritic // OAauth2 app management requires owner permission.
238-
newApp,err=client.PutOAuth2ProviderApp(ctx,expected[0].ID,req)
229+
newApp,err=client.PutOAuth2ProviderApp(ctx,expected.Default.ID,req)
239230
require.NoError(t,err)
240231
require.Equal(t,req.Name,newApp.Name)
241232
require.Equal(t,req.CallbackURL,newApp.CallbackURL)
242233
require.Equal(t,req.Icon,newApp.Icon)
243-
require.Equal(t,expected[0].ID,newApp.ID)
234+
require.Equal(t,expected.Default.ID,newApp.ID)
244235

245236
// Should be able to get a single app.
246-
//nolint:gocritic // OAauth2 app management requires owner permission.
247-
got,err:=client.OAuth2ProviderApp(ctx,expected[0].ID)
237+
got,err:=another.OAuth2ProviderApp(ctx,expected.Default.ID)
248238
require.NoError(t,err)
249239
require.Equal(t,newApp,got)
250240

251241
// Should be able to delete an app.
252242
//nolint:gocritic // OAauth2 app management requires owner permission.
253-
err=client.DeleteOAuth2ProviderApp(ctx,expected[0].ID)
243+
err=client.DeleteOAuth2ProviderApp(ctx,expected.Default.ID)
254244
require.NoError(t,err)
255245

256246
// Should show the new count.
257-
//nolint:gocritic // OAauth2 app management requires owner permission.
258-
newApps,err:=client.OAuth2ProviderApps(ctx)
247+
newApps,err:=another.OAuth2ProviderApps(ctx)
259248
require.NoError(t,err)
260249
require.Len(t,newApps,4)
261-
require.Equal(t,expected[1:],newApps)
250+
251+
require.Equal(t,expectedOrder[1:],newApps)
262252
})
263253
}
264254

265-
funcTestOAuthAppSecrets(t*testing.T) {
255+
funcTestOAuth2ProviderAppSecrets(t*testing.T) {
266256
t.Parallel()
267257

268258
client,_:=coderdenttest.New(t,&coderdenttest.Options{LicenseOptions:&coderdenttest.LicenseOptions{
@@ -274,26 +264,14 @@ func TestOAuthAppSecrets(t *testing.T) {
274264
ctx:=testutil.Context(t,testutil.WaitLong)
275265

276266
// Make some apps.
277-
//nolint:gocritic // OAauth2 app management requires owner permission.
278-
app1,err:=client.PostOAuth2ProviderApp(ctx, codersdk.PostOAuth2ProviderAppRequest{
279-
Name:"razzle-dazzle",
280-
CallbackURL:"http://localhost",
281-
})
282-
require.NoError(t,err)
283-
284-
//nolint:gocritic // OAauth2 app management requires owner permission.
285-
app2,err:=client.PostOAuth2ProviderApp(ctx, codersdk.PostOAuth2ProviderAppRequest{
286-
Name:"razzle-dazzle-the-sequel",
287-
CallbackURL:"http://localhost",
288-
})
289-
require.NoError(t,err)
267+
apps:=generateApps(ctx,t,client,"app-secrets")
290268

291269
t.Run("DeleteNonExisting",func(t*testing.T) {
292270
t.Parallel()
293271

294272
// Should not be able to create secrets for a non-existent app.
295273
//nolint:gocritic // OAauth2 app management requires owner permission.
296-
_,err=client.OAuth2ProviderAppSecrets(ctx,uuid.New())
274+
_,err:=client.OAuth2ProviderAppSecrets(ctx,uuid.New())
297275
require.Error(t,err)
298276

299277
// Should not be able to delete non-existing secrets when there is no app.
@@ -303,16 +281,16 @@ func TestOAuthAppSecrets(t *testing.T) {
303281

304282
// Should not be able to delete non-existing secrets when the app exists.
305283
//nolint:gocritic // OAauth2 app management requires owner permission.
306-
err=client.DeleteOAuth2ProviderAppSecret(ctx,app1.ID,uuid.New())
284+
err=client.DeleteOAuth2ProviderAppSecret(ctx,apps.Default.ID,uuid.New())
307285
require.Error(t,err)
308286

309287
// Should not be able to delete an existing secret with the wrong app ID.
310288
//nolint:gocritic // OAauth2 app management requires owner permission.
311-
secret,err:=client.PostOAuth2ProviderAppSecret(ctx,app2.ID)
289+
secret,err:=client.PostOAuth2ProviderAppSecret(ctx,apps.NoPort.ID)
312290
require.NoError(t,err)
313291

314292
//nolint:gocritic // OAauth2 app management requires owner permission.
315-
err=client.DeleteOAuth2ProviderAppSecret(ctx,app1.ID,secret.ID)
293+
err=client.DeleteOAuth2ProviderAppSecret(ctx,apps.Default.ID,secret.ID)
316294
require.Error(t,err)
317295
})
318296

@@ -321,26 +299,26 @@ func TestOAuthAppSecrets(t *testing.T) {
321299

322300
// No secrets yet.
323301
//nolint:gocritic // OAauth2 app management requires owner permission.
324-
secrets,err:=client.OAuth2ProviderAppSecrets(ctx,app1.ID)
302+
secrets,err:=client.OAuth2ProviderAppSecrets(ctx,apps.Default.ID)
325303
require.NoError(t,err)
326304
require.Len(t,secrets,0)
327305

328306
// Should be able to create secrets.
329307
fori:=0;i<5;i++ {
330308
//nolint:gocritic // OAauth2 app management requires owner permission.
331-
secret,err:=client.PostOAuth2ProviderAppSecret(ctx,app1.ID)
309+
secret,err:=client.PostOAuth2ProviderAppSecret(ctx,apps.Default.ID)
332310
require.NoError(t,err)
333311
require.NotEmpty(t,secret.ClientSecretFull)
334312
require.True(t,len(secret.ClientSecretFull)>6)
335313

336314
//nolint:gocritic // OAauth2 app management requires owner permission.
337-
_,err=client.PostOAuth2ProviderAppSecret(ctx,app2.ID)
315+
_,err=client.PostOAuth2ProviderAppSecret(ctx,apps.NoPort.ID)
338316
require.NoError(t,err)
339317
}
340318

341319
// Should get secrets now, but only for the one app.
342320
//nolint:gocritic // OAauth2 app management requires owner permission.
343-
secrets,err=client.OAuth2ProviderAppSecrets(ctx,app1.ID)
321+
secrets,err=client.OAuth2ProviderAppSecrets(ctx,apps.Default.ID)
344322
require.NoError(t,err)
345323
require.Len(t,secrets,5)
346324
for_,secret:=rangesecrets {
@@ -349,19 +327,53 @@ func TestOAuthAppSecrets(t *testing.T) {
349327

350328
// Should be able to delete a secret.
351329
//nolint:gocritic // OAauth2 app management requires owner permission.
352-
err=client.DeleteOAuth2ProviderAppSecret(ctx,app1.ID,secrets[0].ID)
330+
err=client.DeleteOAuth2ProviderAppSecret(ctx,apps.Default.ID,secrets[0].ID)
353331
require.NoError(t,err)
354-
secrets,err=client.OAuth2ProviderAppSecrets(ctx,app1.ID)
332+
secrets,err=client.OAuth2ProviderAppSecrets(ctx,apps.Default.ID)
355333
require.NoError(t,err)
356334
require.Len(t,secrets,4)
357335

358336
// No secrets once the app is deleted.
359337
//nolint:gocritic // OAauth2 app management requires owner permission.
360-
err=client.DeleteOAuth2ProviderApp(ctx,app1.ID)
338+
err=client.DeleteOAuth2ProviderApp(ctx,apps.Default.ID)
361339
require.NoError(t,err)
362340

363341
//nolint:gocritic // OAauth2 app management requires owner permission.
364-
_,err=client.OAuth2ProviderAppSecrets(ctx,app1.ID)
342+
_,err=client.OAuth2ProviderAppSecrets(ctx,apps.Default.ID)
365343
require.Error(t,err)
366344
})
367345
}
346+
347+
typeprovisionedAppsstruct {
348+
Default codersdk.OAuth2ProviderApp
349+
NoPort codersdk.OAuth2ProviderApp
350+
Subdomain codersdk.OAuth2ProviderApp
351+
// For sorting purposes these are included. You will likely never touch them.
352+
Extra []codersdk.OAuth2ProviderApp
353+
}
354+
355+
funcgenerateApps(ctx context.Context,t*testing.T,client*codersdk.Client,suffixstring)provisionedApps {
356+
create:=func(name,callbackstring) codersdk.OAuth2ProviderApp {
357+
name=fmt.Sprintf("%s-%s",name,suffix)
358+
//nolint:gocritic // OAauth2 app management requires owner permission.
359+
app,err:=client.PostOAuth2ProviderApp(ctx, codersdk.PostOAuth2ProviderAppRequest{
360+
Name:name,
361+
CallbackURL:callback,
362+
Icon:"",
363+
})
364+
require.NoError(t,err)
365+
require.Equal(t,name,app.Name)
366+
require.Equal(t,callback,app.CallbackURL)
367+
returnapp
368+
}
369+
370+
returnprovisionedApps{
371+
Default:create("razzle-dazzle-a","http://localhost1:8080/foo/bar"),
372+
NoPort:create("razzle-dazzle-b","http://localhost2"),
373+
Subdomain:create("razzle-dazzle-z","http://30.localhost:3000"),
374+
Extra: []codersdk.OAuth2ProviderApp{
375+
create("second-to-last","http://20.localhost:3000"),
376+
create("woo-10","http://10.localhost:3000"),
377+
},
378+
}
379+
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp