unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
58 lines • 2.81 kB
JavaScript
import { PayloadType } from 'unleash-client';
import { parseEnvVarBoolean, parseEnvVarBooleanOrStringVariant, parseEnvVarNumber, parseEnvVarStrings, } from './parseEnvVar.js';
test('parseEnvVarNumber', () => {
expect(parseEnvVarNumber('', 1)).toEqual(1);
expect(parseEnvVarNumber('', 2)).toEqual(2);
expect(parseEnvVarNumber(' ', 1)).toEqual(1);
expect(parseEnvVarNumber('a', 1)).toEqual(1);
expect(parseEnvVarNumber('1', 1)).toEqual(1);
expect(parseEnvVarNumber('2', 1)).toEqual(2);
expect(parseEnvVarNumber('2e2', 1)).toEqual(2);
expect(parseEnvVarNumber('-1', 1)).toEqual(-1);
});
test('parseEnvVarBoolean', () => {
expect(parseEnvVarBoolean('', true)).toEqual(true);
expect(parseEnvVarBoolean('', false)).toEqual(false);
expect(parseEnvVarBoolean(' ', false)).toEqual(false);
expect(parseEnvVarBoolean('1', false)).toEqual(true);
expect(parseEnvVarBoolean('2', false)).toEqual(false);
expect(parseEnvVarBoolean('t', false)).toEqual(true);
expect(parseEnvVarBoolean('f', false)).toEqual(false);
expect(parseEnvVarBoolean('true', false)).toEqual(true);
expect(parseEnvVarBoolean('false', false)).toEqual(false);
expect(parseEnvVarBoolean('test', false)).toEqual(false);
});
test('parseEnvVarStringList', () => {
expect(parseEnvVarStrings(undefined, [])).toEqual([]);
expect(parseEnvVarStrings(undefined, ['a'])).toEqual(['a']);
expect(parseEnvVarStrings('', ['a'])).toEqual([]);
expect(parseEnvVarStrings('', [])).toEqual([]);
expect(parseEnvVarStrings(' ', [])).toEqual([]);
expect(parseEnvVarStrings('a', ['*'])).toEqual(['a']);
expect(parseEnvVarStrings('a,b,c', [])).toEqual(['a', 'b', 'c']);
expect(parseEnvVarStrings('a,b,c', [])).toEqual(['a', 'b', 'c']);
expect(parseEnvVarStrings(' a,,,b, c , ,', [])).toEqual(['a', 'b', 'c']);
});
test('parseEnvVarBooleanOrStringVariant', () => {
expect(parseEnvVarBooleanOrStringVariant(undefined, true)).toEqual(true);
expect(parseEnvVarBooleanOrStringVariant(undefined, false)).toEqual(false);
for (const truthy of ['true', 't', '1']) {
expect(parseEnvVarBooleanOrStringVariant(truthy, false)).toEqual(true);
}
for (const falsy of ['false', 'f', '0']) {
expect(parseEnvVarBooleanOrStringVariant(falsy, true)).toEqual(false);
}
expect(parseEnvVarBooleanOrStringVariant(undefined, {
name: 'default-variant',
enabled: false,
})).toEqual({ name: 'default-variant', enabled: false });
expect(parseEnvVarBooleanOrStringVariant('custom string', true)).toMatchObject({
name: expect.any(String),
enabled: true,
payload: {
value: 'custom string',
type: PayloadType.STRING,
},
});
});
//# sourceMappingURL=parseEnvVar.test.js.map