mirror of
https://github.com/balena-os/balena-supervisor.git
synced 2024-12-26 17:01:06 +00:00
118 lines
3.8 KiB
TypeScript
118 lines
3.8 KiB
TypeScript
|
import { expect } from 'chai';
|
||
|
import { ExtraUEnv } from '~/src/config/backends/extra-uEnv';
|
||
|
|
||
|
describe('config/extra-uEnv', () => {
|
||
|
const backend = new ExtraUEnv();
|
||
|
it('only allows supported configuration options', () => {
|
||
|
[
|
||
|
{ configName: 'fdt', supported: true },
|
||
|
{ configName: 'isolcpus', supported: true },
|
||
|
{ configName: 'custom_fdt_file', supported: false },
|
||
|
{ configName: 'splash', supported: false },
|
||
|
{ configName: '', supported: false },
|
||
|
].forEach(({ configName, supported }) =>
|
||
|
expect(backend.isSupportedConfig(configName)).to.equal(supported),
|
||
|
);
|
||
|
});
|
||
|
|
||
|
it('correctly detects boot config variables', () => {
|
||
|
[
|
||
|
{ config: 'HOST_EXTLINUX_isolcpus', valid: true },
|
||
|
{ config: 'HOST_EXTLINUX_fdt', valid: true },
|
||
|
{ config: 'HOST_EXTLINUX_rootwait', valid: true },
|
||
|
{ config: 'HOST_EXTLINUX_5', valid: true },
|
||
|
{ config: 'DEVICE_EXTLINUX_isolcpus', valid: false },
|
||
|
{ config: 'isolcpus', valid: false },
|
||
|
].forEach(({ config, valid }) =>
|
||
|
expect(backend.isBootConfigVar(config)).to.equal(valid),
|
||
|
);
|
||
|
});
|
||
|
|
||
|
it('converts variable to backend formatted name', () => {
|
||
|
[
|
||
|
{ input: 'HOST_EXTLINUX_isolcpus', output: 'isolcpus' },
|
||
|
{ input: 'HOST_EXTLINUX_fdt', output: 'fdt' },
|
||
|
{ input: 'HOST_EXTLINUX_', output: null },
|
||
|
{ input: 'value', output: null },
|
||
|
].forEach(({ input, output }) =>
|
||
|
expect(backend.processConfigVarName(input)).to.equal(output),
|
||
|
);
|
||
|
});
|
||
|
|
||
|
it('normalizes variable value', () => {
|
||
|
[{ input: { key: 'key', value: 'value' }, output: 'value' }].forEach(
|
||
|
({ input, output }) =>
|
||
|
expect(backend.processConfigVarValue(input.key, input.value)).to.equal(
|
||
|
output,
|
||
|
),
|
||
|
);
|
||
|
});
|
||
|
|
||
|
it('returns the environment name for config variable', () => {
|
||
|
[
|
||
|
{ input: 'isolcpus', output: 'HOST_EXTLINUX_isolcpus' },
|
||
|
{ input: 'fdt', output: 'HOST_EXTLINUX_fdt' },
|
||
|
{ input: 'rootwait', output: 'HOST_EXTLINUX_rootwait' },
|
||
|
{ input: '', output: null },
|
||
|
].forEach(({ input, output }) =>
|
||
|
expect(backend.createConfigVarName(input)).to.equal(output),
|
||
|
);
|
||
|
});
|
||
|
|
||
|
it('only allows supported configuration options', () => {
|
||
|
[
|
||
|
{ configName: 'fdt', supported: true },
|
||
|
{ configName: 'isolcpus', supported: true },
|
||
|
{ configName: 'custom_fdt_file', supported: false },
|
||
|
{ configName: 'splash', supported: false },
|
||
|
{ configName: '', supported: false },
|
||
|
].forEach(({ configName, supported }) =>
|
||
|
expect(backend.isSupportedConfig(configName)).to.equal(supported),
|
||
|
);
|
||
|
});
|
||
|
|
||
|
it('correctly detects boot config variables', () => {
|
||
|
[
|
||
|
{ config: 'HOST_EXTLINUX_isolcpus', valid: true },
|
||
|
{ config: 'HOST_EXTLINUX_fdt', valid: true },
|
||
|
{ config: 'HOST_EXTLINUX_rootwait', valid: true },
|
||
|
{ config: 'HOST_EXTLINUX_5', valid: true },
|
||
|
{ config: 'DEVICE_EXTLINUX_isolcpus', valid: false },
|
||
|
{ config: 'isolcpus', valid: false },
|
||
|
].forEach(({ config, valid }) =>
|
||
|
expect(backend.isBootConfigVar(config)).to.equal(valid),
|
||
|
);
|
||
|
});
|
||
|
|
||
|
it('converts variable to backend formatted name', () => {
|
||
|
[
|
||
|
{ input: 'HOST_EXTLINUX_isolcpus', output: 'isolcpus' },
|
||
|
{ input: 'HOST_EXTLINUX_fdt', output: 'fdt' },
|
||
|
{ input: 'HOST_EXTLINUX_', output: null },
|
||
|
{ input: 'value', output: null },
|
||
|
].forEach(({ input, output }) =>
|
||
|
expect(backend.processConfigVarName(input)).to.equal(output),
|
||
|
);
|
||
|
});
|
||
|
|
||
|
it('normalizes variable value', () => {
|
||
|
[{ input: { key: 'key', value: 'value' }, output: 'value' }].forEach(
|
||
|
({ input, output }) =>
|
||
|
expect(backend.processConfigVarValue(input.key, input.value)).to.equal(
|
||
|
output,
|
||
|
),
|
||
|
);
|
||
|
});
|
||
|
|
||
|
it('returns the environment name for config variable', () => {
|
||
|
[
|
||
|
{ input: 'isolcpus', output: 'HOST_EXTLINUX_isolcpus' },
|
||
|
{ input: 'fdt', output: 'HOST_EXTLINUX_fdt' },
|
||
|
{ input: 'rootwait', output: 'HOST_EXTLINUX_rootwait' },
|
||
|
{ input: '', output: null },
|
||
|
].forEach(({ input, output }) =>
|
||
|
expect(backend.createConfigVarName(input)).to.equal(output),
|
||
|
);
|
||
|
});
|
||
|
});
|