directus

Форк
0
/
create-redis.test.ts 
49 строк · 1.4 Кб
1
import { useEnv } from '@directus/env';
2
import { Redis } from 'ioredis';
3
import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest';
4
import { getConfigFromEnv } from '../../utils/get-config-from-env.js';
5
import { createRedis } from './create-redis.js';
6

7
vi.mock('ioredis');
8
vi.mock('../../utils/get-config-from-env.js');
9
vi.mock('@directus/env');
10

11
let mockRedis: Redis;
12

13
beforeEach(() => {
14
	mockRedis = new Redis();
15
	vi.mocked(Redis).mockReturnValue(mockRedis);
16
});
17

18
afterEach(() => {
19
	vi.clearAllMocks();
20
});
21

22
describe('createRedis', () => {
23
	test('Creates and returns new Redis instance from connection string', () => {
24
		const connectionString = 'test-connection-string';
25
		const mockEnv = { REDIS: connectionString };
26
		vi.mocked(useEnv).mockReturnValue(mockEnv);
27

28
		const redis = createRedis();
29

30
		expect(Redis).toHaveBeenCalledWith(connectionString);
31
		expect(redis).toBe(mockRedis);
32
	});
33

34
	test('Uses Redis connection object if Redis connection string is missing', () => {
35
		const redisHost = 'test-host';
36
		const mockEnv = { REDIS_HOST: redisHost };
37
		vi.mocked(useEnv).mockReturnValue(mockEnv);
38

39
		const mockConfig = { host: redisHost };
40

41
		vi.mocked(getConfigFromEnv).mockReturnValue(mockConfig);
42

43
		const redis = createRedis();
44

45
		expect(getConfigFromEnv).toHaveBeenCalledWith('REDIS');
46
		expect(Redis).toHaveBeenCalledWith(mockConfig);
47
		expect(redis).toBe(mockRedis);
48
	});
49
});
50

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.