generated from Seekra/repository-template
Add settings validator unit test #113
@@ -15,7 +15,7 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { describe, test, expect } from 'vitest';
|
import { describe, test, expect } from 'vitest';
|
||||||
import { assertType, assertString } from '../settingsValidator';
|
import { validateSelectionOptions, assertType, assertString } from '../settingsValidator';
|
||||||
|
|
||||||
describe('validateSettingsConfig', () => {
|
describe('validateSettingsConfig', () => {
|
||||||
|
|
||||||
@@ -26,7 +26,13 @@ describe('validateEntry', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('validateSelectionOptions', () => {
|
describe('validateSelectionOptions', () => {
|
||||||
|
test.for([
|
||||||
|
[[{ name: 'test', i18n: 'test.label' }]],
|
||||||
|
[[{ name: 'test', i18n: 'test.label' }, { name: 'test2', i18n: 'test2.label' }]],
|
||||||
|
[[{ name: 'test', i18n: 'test.label' }, { name: 'test', i18n: 'test2.label' }, { name: 'test3', i18n: 'test.label' }]]
|
||||||
|
])('throws no error for the options %s', ([ options ]) => {
|
||||||
|
expect(() => validateSelectionOptions(options)).not.throws(Error);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('assertType', () => {
|
describe('assertType', () => {
|
||||||
|
|||||||
@@ -30,10 +30,10 @@ export const assertType = function assertType (value, path) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function validateSelectionOptions(options, path) {
|
export const validateSelectionOptions = function validateSelectionOptions (options, path) {
|
||||||
if (!Array.isArray(options) || options.length === 0) {
|
if (!Array.isArray(options) || options.length === 0) {
|
||||||
throw new Error(`[settings] "${path}.options" must be a non-empty array`);
|
throw new Error(`[settings] "${path}.options" must be a non-empty array`);
|
||||||
}
|
};
|
||||||
options.forEach((opt, i) => {
|
options.forEach((opt, i) => {
|
||||||
assertString(opt.name, `${path}.options[${i}].name`);
|
assertString(opt.name, `${path}.options[${i}].name`);
|
||||||
assertString(opt.i18n, `${path}.options[${i}].i18n`);
|
assertString(opt.i18n, `${path}.options[${i}].i18n`);
|
||||||
|
|||||||
Reference in New Issue
Block a user