directus
1import { useEnv } from '@directus/env';
2import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest';
3import { getConfigFromEnv } from './get-config-from-env.js';
4
5vi.mock('@directus/env');
6
7beforeEach(() => {
8vi.mocked(useEnv).mockReturnValue({
9OBJECT_BRAND__COLOR: 'purple',
10OBJECT_BRAND__HEX: '#6644FF',
11CAMELCASE_OBJECT__FIRST_KEY: 'firstValue',
12CAMELCASE_OBJECT__SECOND_KEY: 'secondValue',
13});
14});
15
16afterEach(() => {
17vi.clearAllMocks();
18});
19
20describe('get config from env', () => {
21test('Keys with double underscore should be an object', () => {
22expect(getConfigFromEnv('OBJECT_')).toStrictEqual({ brand: { color: 'purple', hex: '#6644FF' } });
23});
24
25test('Keys with double underscore should be an object with camelCase keys', () => {
26expect(getConfigFromEnv('CAMELCASE_')).toStrictEqual({
27object: { firstKey: 'firstValue', secondKey: 'secondValue' },
28});
29});
30});
31