balena-supervisor/test/30-fdt-directive.spec.ts
Christina Wang 4a2ac557ef
Remove mz, mkdirp, body-parser dependencies
'mz' can be safely replaced with fs.promises
and util.promisify for faster native methods.
'mkdirp' after Node v8 uses native fs.mkdir, thus
is redundant. 'body-parser' is deprecated and
contained within express v4.x.

Closes: #1567
Change-type: patch
Signed-off-by: Christina Wang <christina@balena.io>
2021-04-28 07:20:15 +09:00

69 lines
1.3 KiB
TypeScript

import { FDTDirective } from '../src/config/backends/extlinux-file';
import { expect } from 'chai';
describe('FDT directive', () => {
const directive = new FDTDirective();
it('parses valid FDT value', () => {
VALID_VALUES.forEach(({ input, output }) =>
// @ts-ignore input with no FDT can still be parsed
expect(directive.parse(input)).to.deep.equal(output),
);
});
it('generates value from valid ConfigOptions', () => {
expect(
directive.generate({
fdt: '/boot/mycustomdtb.dtb',
}),
).to.deep.equal('/boot/mycustomdtb.dtb');
});
it('errors when generating with invalid ConfigOptions', () => {
INVALID_CONFIGS_OPTIONS.forEach(({ input, reason }) =>
// @ts-expect-error
expect(() => directive.generate(input)).to.throw(reason),
);
});
});
const VALID_VALUES = [
{
input: {
FDT: '/boot/mycustomdtb.dtb',
},
output: {
fdt: '/boot/mycustomdtb.dtb',
},
},
{
input: {
FDT: '',
},
output: {},
},
{
input: {},
output: {},
},
];
const INVALID_CONFIGS_OPTIONS = [
{
input: {
fdt: '',
},
reason: 'Cannot set FDT of an empty value.',
},
{
input: {
fdt: null,
},
reason: 'Cannot set FDT of non-string value: null',
},
{
input: {},
reason: 'Cannot set FDT of non-string value: ',
},
];