directus

Форк
0
/
validate-env.test.ts 
45 строк · 1.1 Кб
1
import { useEnv } from '@directus/env';
2
import type { Logger } from 'pino';
3
import { afterEach, beforeAll, beforeEach, expect, test, vi } from 'vitest';
4
import { useLogger } from '../logger.js';
5
import { validateEnv } from './validate-env.js';
6

7
vi.mock('@directus/env');
8

9
vi.mock('../logger');
10

11
let mockLogger: Logger<never>;
12

13
beforeAll(() => {
14
	vi.spyOn(process, 'exit').mockImplementation(() => undefined as never);
15

16
	vi.mocked(useEnv).mockReturnValue({
17
		PRESENT_TEST_VARIABLE: 'true',
18
	});
19
});
20

21
beforeEach(() => {
22
	mockLogger = {
23
		error: vi.fn(),
24
	} as unknown as Logger<never>;
25

26
	vi.mocked(useLogger).mockReturnValue(mockLogger);
27
});
28

29
afterEach(() => {
30
	vi.clearAllMocks();
31
});
32

33
test('should not have any error when key is present', () => {
34
	validateEnv(['PRESENT_TEST_VARIABLE']);
35

36
	expect(mockLogger.error).not.toHaveBeenCalled();
37
	expect(process.exit).not.toHaveBeenCalled();
38
});
39

40
test('should have error when key is missing', () => {
41
	validateEnv(['ABSENT_TEST_VARIABLE']);
42

43
	expect(mockLogger.error).toHaveBeenCalled();
44
	expect(process.exit).toHaveBeenCalled();
45
});
46

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

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

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

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