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

Function TestCryptoKeyCache

coderd/cryptokeys/cache_test.go:24–488  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

22}
23
24func TestCryptoKeyCache(t *testing.T) {
25 t.Parallel()
26
27 t.Run("Signing", func(t *testing.T) {
28 t.Parallel()
29
30 t.Run("HitsCache", func(t *testing.T) {
31 t.Parallel()
32 var (
33 ctx = testutil.Context(t, testutil.WaitShort)
34 logger = testutil.Logger(t)
35 clock = quartz.NewMock(t)
36 )
37
38 now := clock.Now().UTC()
39 expected := codersdk.CryptoKey{
40 Feature: codersdk.CryptoKeyFeatureTailnetResume,
41 Secret: generateKey(t, 64),
42 Sequence: 2,
43 StartsAt: now,
44 }
45 olderKey := codersdk.CryptoKey{
46 Feature: codersdk.CryptoKeyFeatureTailnetResume,
47 Secret: generateKey(t, 64),
48 Sequence: 1,
49 StartsAt: now,
50 }
51
52 ff := &fakeFetcher{
53 keys: []codersdk.CryptoKey{expected, olderKey},
54 }
55
56 cache, err := cryptokeys.NewSigningCache(ctx, logger, ff, codersdk.CryptoKeyFeatureTailnetResume, cryptokeys.WithCacheClock(clock))
57 require.NoError(t, err)
58
59 id, got, err := cache.SigningKey(ctx)
60 require.NoError(t, err)
61 require.Equal(t, keyID(expected), id)
62 require.Equal(t, decodedSecret(t, expected), got)
63 require.Equal(t, 1, ff.called)
64 })
65
66 t.Run("MissesCache", func(t *testing.T) {
67 t.Parallel()
68 var (
69 ctx = testutil.Context(t, testutil.WaitShort)
70 logger = testutil.Logger(t)
71 clock = quartz.NewMock(t)
72 )
73
74 ff := &fakeFetcher{
75 keys: []codersdk.CryptoKey{},
76 }
77
78 cache, err := cryptokeys.NewSigningCache(ctx, logger, ff, codersdk.CryptoKeyFeatureTailnetResume, cryptokeys.WithCacheClock(clock))
79 require.NoError(t, err)
80
81 expected := codersdk.CryptoKey{

Callers

nothing calls this directly

Calls 13

ContextFunction · 0.92
LoggerFunction · 0.92
NewSigningCacheFunction · 0.92
WithCacheClockFunction · 0.92
keyIDFunction · 0.85
decodedSecretFunction · 0.85
generateKeyFunction · 0.70
RunMethod · 0.65
SigningKeyMethod · 0.65
AddMethod · 0.65
VerifyingKeyMethod · 0.65
CloseMethod · 0.65

Tested by

no test coverage detected