MCPcopy Index your code
hub / github.com/coder/coder / TestOAuth2ProviderAppSecrets

Function TestOAuth2ProviderAppSecrets

coderd/oauth2_test.go:63–152  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

61}
62
63func TestOAuth2ProviderAppSecrets(t *testing.T) {
64 t.Parallel()
65
66 client := coderdtest.New(t, nil)
67 _ = coderdtest.CreateFirstUser(t, client)
68
69 ctx := testutil.Context(t, testutil.WaitLong)
70
71 // Make some apps.
72 apps := generateApps(ctx, t, client, "app-secrets")
73
74 t.Run("DeleteNonExisting", func(t *testing.T) {
75 t.Parallel()
76 ctx := testutil.Context(t, testutil.WaitLong)
77
78 // Should not be able to create secrets for a non-existent app.
79 //nolint:gocritic // OAauth2 app management requires owner permission.
80 _, err := client.OAuth2ProviderAppSecrets(ctx, uuid.New())
81 require.Error(t, err)
82
83 // Should not be able to delete non-existing secrets when there is no app.
84 //nolint:gocritic // OAauth2 app management requires owner permission.
85 err = client.DeleteOAuth2ProviderAppSecret(ctx, uuid.New(), uuid.New())
86 require.Error(t, err)
87
88 // Should not be able to delete non-existing secrets when the app exists.
89 //nolint:gocritic // OAauth2 app management requires owner permission.
90 err = client.DeleteOAuth2ProviderAppSecret(ctx, apps.Default.ID, uuid.New())
91 require.Error(t, err)
92
93 // Should not be able to delete an existing secret with the wrong app ID.
94 //nolint:gocritic // OAauth2 app management requires owner permission.
95 secret, err := client.PostOAuth2ProviderAppSecret(ctx, apps.NoPort.ID)
96 require.NoError(t, err)
97
98 //nolint:gocritic // OAauth2 app management requires owner permission.
99 err = client.DeleteOAuth2ProviderAppSecret(ctx, apps.Default.ID, secret.ID)
100 require.Error(t, err)
101 })
102
103 t.Run("OK", func(t *testing.T) {
104 t.Parallel()
105 ctx := testutil.Context(t, testutil.WaitLong)
106
107 // No secrets yet.
108 //nolint:gocritic // OAauth2 app management requires owner permission.
109 secrets, err := client.OAuth2ProviderAppSecrets(ctx, apps.Default.ID)
110 require.NoError(t, err)
111 require.Len(t, secrets, 0)
112
113 // Should be able to create secrets.
114 for i := 0; i < 5; i++ {
115 //nolint:gocritic // OAauth2 app management requires owner permission.
116 secret, err := client.PostOAuth2ProviderAppSecret(ctx, apps.Default.ID)
117 require.NoError(t, err)
118 require.NotEmpty(t, secret.ClientSecretFull)
119 require.True(t, len(secret.ClientSecretFull) > 6)
120

Callers

nothing calls this directly

Calls 13

NewFunction · 0.92
CreateFirstUserFunction · 0.92
ContextFunction · 0.92
NotEmptyMethod · 0.80
generateAppsFunction · 0.70
RunMethod · 0.65
NewMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected