thunderhub/server/helpers/__tests__/env.test.ts
2020-12-21 00:01:07 +01:00

78 lines
1.9 KiB
TypeScript

import { resolveEnvVarsInAccount } from '../env';
import { AccountType, UnresolvedAccountType } from '../fileHelpers';
const vars = {
YML_ENV_1: 'firstEnv',
YML_ENV_2: 'macaroonString',
YML_ENV_3: 'false',
YML_ENV_4: 'true',
};
jest.mock('next/config', () => () => ({
serverRuntimeConfig: vars,
}));
describe('resolveEnvVarsInAccount', () => {
it('returns resolved account', () => {
const account: UnresolvedAccountType = {
name: '{YML_ENV_1}',
serverUrl: 'server.url:10009',
macaroon: '{YML_ENV_2}',
};
const resolved = resolveEnvVarsInAccount(account);
const result: AccountType = {
name: 'firstEnv',
serverUrl: 'server.url:10009',
macaroon: 'macaroonString',
};
expect(resolved).toStrictEqual(result);
});
it('resolves false boolean values', () => {
const account: UnresolvedAccountType = {
name: '{YML_ENV_1}',
serverUrl: 'server.url:10009',
encrypted: '{YML_ENV_3}',
};
const resolved = resolveEnvVarsInAccount(account);
const result: AccountType = {
name: 'firstEnv',
serverUrl: 'server.url:10009',
encrypted: false,
};
expect(resolved).toStrictEqual(result);
});
it('resolves true boolean values', () => {
const account: UnresolvedAccountType = {
name: '{YML_ENV_1}',
serverUrl: 'server.url:10009',
encrypted: '{YML_ENV_4}',
};
const resolved = resolveEnvVarsInAccount(account);
const result: AccountType = {
name: 'firstEnv',
serverUrl: 'server.url:10009',
encrypted: true,
};
expect(resolved).toStrictEqual(result);
});
it('does not resolve non existing env vars', () => {
const account: UnresolvedAccountType = {
macaroon: '{YML_ENV_NONE}',
};
const resolved = resolveEnvVarsInAccount(account);
expect(resolved).toStrictEqual({
macaroon: '{YML_ENV_NONE}',
});
});
});