MCPcopy
hub / github.com/tj/connect-redis / lifecycleTest

Function lifecycleTest

index_test.ts:37–105  ·  view source on GitHub ↗
(store: RedisStore, client: any)

Source from the content-addressed store, hash-verified

35test("teardown", redisSrv.disconnect)
36
37async function lifecycleTest(store: RedisStore, client: any): Promise<void> {
38 let res = await store.clear()
39
40 let sess = {foo: "bar", cookie: {originalMaxAge: null}}
41 await store.set("123", sess)
42
43 res = await store.get("123")
44 expect(res).toEqual(sess)
45
46 let ttl = await client.ttl("sess:123")
47 expect(ttl).toBeGreaterThanOrEqual(86399)
48
49 ttl = 60
50 let expires = new Date(Date.now() + ttl * 1000)
51 await store.set("456", {cookie: {originalMaxAge: null, expires}})
52 ttl = await client.ttl("sess:456")
53 expect(ttl).toBeLessThanOrEqual(60)
54
55 ttl = 90
56 let expires2 = new Date(Date.now() + ttl * 1000)
57 await store.touch("456", {cookie: {originalMaxAge: null, expires: expires2}})
58 ttl = await client.ttl("sess:456")
59 expect(ttl).toBeGreaterThan(60)
60
61 res = await store.length()
62 expect(res).toBe(2) // stored two keys length
63
64 res = await store.ids()
65 res.sort()
66 expect(res).toEqual(["123", "456"])
67
68 res = await store.all()
69 res.sort((a: any, b: any) => (a.id > b.id ? 1 : -1))
70 expect(res).toEqual([
71 {id: "123", foo: "bar", cookie: {originalMaxAge: null}},
72 {id: "456", cookie: {originalMaxAge: null, expires: expires.toISOString()}},
73 ])
74
75 await store.destroy("456")
76 res = await store.length()
77 expect(res).toBe(1) // one key remains
78
79 res = await store.clear()
80
81 res = await store.length()
82 expect(res).toBe(0) // no keys remain
83
84 let count = 1000
85 await load(store, count)
86
87 res = await store.length()
88 expect(res).toBe(count)
89
90 await store.clear()
91 res = await store.length()
92 expect(res).toBe(0)
93
94 expires = new Date(Date.now() + ttl * 1000) // expires in the future

Callers 1

index_test.tsFile · 0.85

Calls 9

loadFunction · 0.85
clearMethod · 0.80
setMethod · 0.80
getMethod · 0.80
touchMethod · 0.80
lengthMethod · 0.80
idsMethod · 0.80
allMethod · 0.80
destroyMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…