balena-supervisor/test/unit/lib/conversions.spec.ts
2022-10-18 20:36:53 -03:00

60 lines
1.5 KiB
TypeScript

import { expect } from 'chai';
import * as conversion from '~/lib/conversions';
describe('lib/conversions', function () {
describe('envArrayToObject', function () {
it('should convert an env array to an object', () =>
expect(
conversion.envArrayToObject([
'key=value',
'test1=test2',
'k=v',
'equalsvalue=thisvaluehasan=char',
'asd=',
'number=123',
]),
).to.deep.equal({
key: 'value',
test1: 'test2',
k: 'v',
equalsvalue: 'thisvaluehasan=char',
asd: '',
number: '123',
}));
it('should ignore invalid env array entries', () =>
expect(
conversion.envArrayToObject(['key1', 'key1=value1']),
).to.deep.equal({
key1: 'value1',
}));
it('should return an empty object with an empty input', function () {
// @ts-expect-error passing invalid value to test
expect(conversion.envArrayToObject(null)).to.deep.equal({});
// @ts-expect-error passing invalid value to test
expect(conversion.envArrayToObject('')).to.deep.equal({});
expect(conversion.envArrayToObject([])).to.deep.equal({});
// @ts-expect-error passing invalid value to test
expect(conversion.envArrayToObject(1)).to.deep.equal({});
});
});
it('should correctly handle whitespace', () =>
expect(
conversion.envArrayToObject([
'key1= test',
'key2=test\ntest',
'key3=test ',
'key4= test ',
'key5=test\r\ntest',
]),
).to.deep.equal({
key1: ' test',
key2: 'test\ntest',
key3: 'test ',
key4: ' test ',
key5: 'test\r\ntest',
}));
});