Skip to content

Commit 4028995

Browse files
committed
Refactor crypto key management in tests
Remove redundant database setup for tests by generating keys in memory. Enhance tests by validating both inclusion and exclusion of specific keys.
1 parent 692bb36 commit 4028995

File tree

1 file changed

+19
-7
lines changed

1 file changed

+19
-7
lines changed

enterprise/coderd/workspaceproxy_test.go

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -608,7 +608,7 @@ func TestProxyRegisterDeregister(t *testing.T) {
608608
func TestIssueSignedAppToken(t *testing.T) {
609609
t.Parallel()
610610

611-
client, db, user := coderdenttest.NewWithDatabase(t, &coderdenttest.Options{
611+
client, user := coderdenttest.New(t, &coderdenttest.Options{
612612
Options: &coderdtest.Options{
613613
IncludeProvisionerDaemon: true,
614614
},
@@ -619,10 +619,6 @@ func TestIssueSignedAppToken(t *testing.T) {
619619
},
620620
})
621621

622-
_ = dbgen.CryptoKey(t, db, database.CryptoKey{
623-
Feature: database.CryptoKeyFeatureWorkspaceAppsToken,
624-
})
625-
626622
// Create a workspace + apps
627623
authToken := uuid.NewString()
628624
version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, &echo.Responses{
@@ -950,14 +946,18 @@ func TestGetCryptoKeys(t *testing.T) {
950946
keys, err := proxy.SDKClient.CryptoKeys(ctx, codersdk.CryptoKeyFeatureWorkspaceAppsAPIKey)
951947
require.NoError(t, err)
952948
require.NotEmpty(t, keys)
953-
require.Equal(t, 1, len(keys.CryptoKeys))
949+
// 1 key is generated on startup, the other we manually generated.
950+
require.Equal(t, 2, len(keys.CryptoKeys))
954951
requireContainsKeys(t, keys.CryptoKeys, encryptionKey)
952+
requireNotContainsKeys(t, keys.CryptoKeys, signingKey)
955953

956954
keys, err = proxy.SDKClient.CryptoKeys(ctx, codersdk.CryptoKeyFeatureWorkspaceAppsToken)
957955
require.NoError(t, err)
958956
require.NotEmpty(t, keys)
959-
require.Equal(t, 1, len(keys.CryptoKeys))
957+
// 1 key is generated on startup, the other we manually generated.
958+
require.Equal(t, 2, len(keys.CryptoKeys))
960959
requireContainsKeys(t, keys.CryptoKeys, signingKey)
960+
requireNotContainsKeys(t, keys.CryptoKeys, encryptionKey)
961961
})
962962

963963
t.Run("InvalidFeature", func(t *testing.T) {
@@ -1030,6 +1030,18 @@ func TestGetCryptoKeys(t *testing.T) {
10301030
})
10311031
}
10321032

1033+
func requireNotContainsKeys(t *testing.T, keys []codersdk.CryptoKey, unexpected ...codersdk.CryptoKey) {
1034+
t.Helper()
1035+
1036+
for _, unexpectedKey := range unexpected {
1037+
for _, key := range keys {
1038+
if key.Feature == unexpectedKey.Feature && key.Sequence == unexpectedKey.Sequence {
1039+
t.Fatalf("unexpected key %+v found", unexpectedKey)
1040+
}
1041+
}
1042+
}
1043+
}
1044+
10331045
func requireContainsKeys(t *testing.T, keys []codersdk.CryptoKey, expected ...codersdk.CryptoKey) {
10341046
t.Helper()
10351047

0 commit comments

Comments
 (0)