MCPcopy
hub / github.com/unkeyed/unkey / TestRedisCounter

Function TestRedisCounter

pkg/counter/redis_test.go:23–299  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

21}
22
23func TestRedisCounter(t *testing.T) {
24 ctx := context.Background()
25 redisURL := containers.Redis(t)
26
27 // Create a Redis counter
28 ctr, err := newTestRedis(t, redisURL)
29 require.NoError(t, err)
30 defer func() { require.NoError(t, ctr.Close()) }()
31
32 // Test basic increment
33 t.Run("BasicIncrement", func(t *testing.T) {
34 key := uid.New(uid.TestPrefix)
35
36 // First increment should return 1
37 val, err := ctr.Increment(ctx, key, 1)
38 require.NoError(t, err)
39 require.Equal(t, int64(1), val)
40
41 // Second increment should return 2
42 val, err = ctr.Increment(ctx, key, 1)
43 require.NoError(t, err)
44 require.Equal(t, int64(2), val)
45
46 // Increment by 5 should return 7
47 val, err = ctr.Increment(ctx, key, 5)
48 require.NoError(t, err)
49 require.Equal(t, int64(7), val)
50 })
51
52 t.Run("IncrementWithTTL", func(t *testing.T) {
53 key := uid.New(uid.TestPrefix)
54 ttl := 1 * time.Second
55
56 // First increment with TTL
57 val, err := ctr.Increment(ctx, key, 1, ttl)
58 require.NoError(t, err)
59 require.Equal(t, int64(1), val)
60
61 // Get the value immediately
62 val, err = ctr.Get(ctx, key)
63 require.NoError(t, err)
64 require.Equal(t, int64(1), val)
65
66 // Wait for the key to expire
67 time.Sleep(2 * time.Second)
68
69 // Key should be gone or zero
70 val, err = ctr.Get(ctx, key)
71 require.NoError(t, err)
72 require.Equal(t, int64(0), val)
73 })
74
75 t.Run("Get", func(t *testing.T) {
76 key := uid.New(uid.TestPrefix)
77
78 // Get non-existent key
79 val, err := ctr.Get(ctx, key)
80 require.NoError(t, err)

Callers

nothing calls this directly

Calls 10

RedisFunction · 0.92
NewFunction · 0.92
newTestRedisFunction · 0.85
DoneMethod · 0.80
CloseMethod · 0.65
RunMethod · 0.65
IncrementMethod · 0.65
GetMethod · 0.65
WaitMethod · 0.65
AddMethod · 0.45

Tested by

no test coverage detected