(t *testing.T)
| 61 | } |
| 62 | |
| 63 | func 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 |
nothing calls this directly
no test coverage detected