jschan - Anonymous imageboard software. Classic look, modern features and feel. Works without JavaScript and supports Tor, I2P, Lokinet, etc.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

69 lines
2.0 KiB

const { trimSetting, numberSetting, booleanSetting, arraySetting } = require('./setting.js');
describe('trimSetting, numberSetting, booleanSetting, arraySetting', () => {
const trimCases = [
{ in: '', out: '' },
{ in: ' lol ', out: 'lol' },
{ in: 1, out: 'OLDSETTING' },
{ in: null, out: 'OLDSETTING' },
];
for(let i in trimCases) {
test(`trimSetting should output ${trimCases[i].out} for an input of ${trimCases[i].in}`, () => {
expect(trimSetting(trimCases[i].in, 'OLDSETTING')).toStrictEqual(trimCases[i].out);
});
}
const numberCases = [
{ in: 3, out: 3 },
{ in: undefined, out: 'OLDSETTING' },
{ in: null, out: 'OLDSETTING' },
{ in: [], out: 'OLDSETTING' },
{ in: '', out: 'OLDSETTING' },
{ in: 'string', out: 'OLDSETTING' },
];
for(let i in numberCases) {
test(`numberSetting should output ${numberCases[i].out} for an input of ${numberCases[i].in}`, () => {
expect(numberSetting(numberCases[i].in, 'OLDSETTING')).toStrictEqual(numberCases[i].out);
});
}
const booleanCases = [
{ in: null, out: false },
{ in: undefined, out: false },
{ in: '', out: true },
{ in: 'test', out: true },
{ in: 1, out: true },
{ in: [], out: true },
{ in: [1], out: true },
];
for(let i in booleanCases) {
test(`booleanSetting should output ${booleanCases[i].out} for an input of ${booleanCases[i].in}`, () => {
expect(booleanSetting(booleanCases[i].in)).toStrictEqual(booleanCases[i].out);
});
}
const arrayCases = [
{ in: undefined, out: 'OLDSETTING' },
{ in: null, out: 'OLDSETTING' },
{ in: '', out: [] },
{ in: 'test', out: ['test'] },
{ in: 1, out: 'OLDSETTING' },
{ in: [], out: 'OLDSETTING' },
{ in: '1', out: ['1'] },
{ in: `1
2
3`, out: ['1', '2', '3'] },
{ in: ` hello
123
xxx`, out: [' hello ', '123', 'xxx'] },
];
for(let i in arrayCases) {
test(`arraySetting should output ${arrayCases[i].out} for an input of ${arrayCases[i].in}`, () => {
expect(arraySetting(arrayCases[i].in, 'OLDSETTING', 10)).toStrictEqual(arrayCases[i].out);
});
}
});