|
1 |
| -import { beforeEach, describe, expect, it } from 'bun:test' |
| 1 | +import { afterAll, beforeAll, beforeEach, describe, expect, it } from 'bun:test' |
2 | 2 | import { redis } from '../src/drivers/redis'
|
| 3 | +import { startRedisServer, stopRedisServer } from './scripts/redis-server' |
| 4 | + |
| 5 | +beforeAll(async () => { |
| 6 | + await startRedisServer() |
| 7 | +}) |
3 | 8 |
|
4 | 9 | beforeEach(async () => {
|
5 | 10 | await redis.clear()
|
6 | 11 | })
|
7 | 12 |
|
| 13 | +afterAll(() => { |
| 14 | + stopRedisServer() |
| 15 | +}) |
| 16 | + |
8 | 17 | describe('@stacksjs/cache - Redis', () => {
|
9 | 18 | it('should set and get a redis cache value', async () => {
|
10 | 19 | await redis.set('key1', 'value1')
|
11 | 20 | expect(await redis.get('key1')).toBe('value1')
|
12 | 21 | })
|
13 |
| - |
14 | 22 | it('should set a redis cache value with no TTL and get it', async () => {
|
15 | 23 | await redis.setForever('key2', 'value2')
|
16 | 24 | expect(await redis.get('key2')).toBe('value2')
|
17 | 25 | })
|
18 |
| - |
19 | 26 | it('should get or set a redis cache value if not set', async () => {
|
20 | 27 | expect(await redis.get('key3')).toBeUndefined()
|
21 |
| - |
22 | 28 | await redis.getOrSet('key3', 'value3')
|
23 | 29 | expect(await redis.get('key3')).toBe('value3')
|
24 | 30 | })
|
25 |
| - |
26 | 31 | it('should delete a redis cache value', async () => {
|
27 | 32 | await redis.set('key4', 'value4')
|
28 | 33 | await redis.del('key4')
|
29 | 34 | expect(await redis.get('key4')).toBeUndefined()
|
30 | 35 | })
|
31 |
| - |
32 | 36 | it('should delete multiple redis cache values', async () => {
|
33 | 37 | await redis.set('key5', 'value5')
|
34 | 38 | await redis.set('key6', 'value6')
|
35 | 39 | await redis.deleteMany(['key5', 'key6'])
|
36 |
| - |
37 | 40 | expect(await redis.get('key5')).toBeUndefined()
|
38 | 41 | expect(await redis.get('key6')).toBeUndefined()
|
39 | 42 | })
|
40 |
| - |
41 | 43 | it('should check if a key exists in redis cache', async () => {
|
42 | 44 | await redis.set('key7', 'value7')
|
43 | 45 | expect(await redis.has('key7')).toBe(true)
|
44 | 46 | })
|
45 |
| - |
46 | 47 | it('should return false if a key is missing in redis cache', async () => {
|
47 | 48 | expect(await redis.missing('nonExistentKey')).toBe(true)
|
48 | 49 | await redis.set('key8', 'value8')
|
49 | 50 | expect(await redis.missing('key8')).toBe(false)
|
50 | 51 | })
|
51 |
| - |
52 | 52 | it('should clear all redis cache values', async () => {
|
53 | 53 | await redis.set('key9', 'value9')
|
54 | 54 | await redis.set('key10', 'value10')
|
55 | 55 | await redis.clear()
|
56 |
| - |
57 | 56 | expect(await redis.get('key9')).toBeUndefined()
|
58 | 57 | expect(await redis.get('key10')).toBeUndefined()
|
59 | 58 | })
|
60 |
| - |
61 | 59 | it('should remove a specific redis cache value', async () => {
|
62 | 60 | await redis.set('key11', 'value11')
|
63 | 61 | await redis.remove('key11')
|
64 |
| - |
65 | 62 | expect(await redis.get('key11')).toBeUndefined()
|
66 | 63 | })
|
67 |
| - |
68 | 64 | it('should disconnect from redis', async () => {
|
69 | 65 | await redis.set('key12', 'value12')
|
70 | 66 | await redis.disconnect()
|
|
0 commit comments