forest-express
Version:
Official package for all Forest Express Lianas
32 lines (24 loc) • 1.37 kB
JavaScript
const ParamsFieldsDeserializer = require('../../src/deserializers/params-fields');
describe('deserializers > params-fields', () => {
it('should split commas separated strings into arrays', () => {
const paramsFields = { model: 'field1,field2,field3' };
const expectedResult = { model: ['field1', 'field2', 'field3'] };
const actualResult = (new ParamsFieldsDeserializer(paramsFields)).perform();
expect(actualResult).toStrictEqual(expectedResult);
});
it('should keep already-array values (e.g. composite primary keys)', () => {
const paramsFields = { dailySpecials: ['dayOfWeek', 'restaurantId'] };
const expectedResult = { dailySpecials: ['dayOfWeek', 'restaurantId'] };
const actualResult = (new ParamsFieldsDeserializer(paramsFields)).perform();
expect(actualResult).toStrictEqual(expectedResult);
});
it('should re-split and flatten comma separated entries inside an array', () => {
const paramsFields = { model: ['field1,field2', 'field3'] };
const expectedResult = { model: ['field1', 'field2', 'field3'] };
const actualResult = (new ParamsFieldsDeserializer(paramsFields)).perform();
expect(actualResult).toStrictEqual(expectedResult);
});
it('should return null when paramsFields is not provided', () => {
expect((new ParamsFieldsDeserializer(undefined)).perform()).toBeNull();
});
});