37 lines
1.5 KiB
TypeScript
37 lines
1.5 KiB
TypeScript
import { SettingsMapper } from '../src/settingsMapper';
|
|
import { HotTableProps } from '../src/types';
|
|
|
|
describe('Settings mapper unit tests', () => {
|
|
describe('getSettings', () => {
|
|
it('should return a valid settings object, when provided an object with settings (including the hooks)', () => {
|
|
const initial: HotTableProps = {
|
|
width: 300,
|
|
height: 300,
|
|
contextMenu: true,
|
|
columns: [
|
|
{ label: { value: 'first label' }},
|
|
{ label: { value: 'second label' }}
|
|
],
|
|
afterChange: () => {
|
|
return 'works!';
|
|
},
|
|
afterRender: () => {
|
|
return 'also works!';
|
|
}
|
|
};
|
|
const result = SettingsMapper.getSettings(initial);
|
|
|
|
expect(!!result.width && !!result.height && !!result.contextMenu && !!result.columns && !!result.afterChange && !!result.afterRender).toEqual(true);
|
|
expect(Object.keys(initial).length).toEqual(Object.keys(result).length);
|
|
expect(result.width).toEqual(300);
|
|
expect(result.height).toEqual(300);
|
|
expect(result.contextMenu).toEqual(true);
|
|
expect(JSON.stringify(initial.columns)).toEqual(JSON.stringify(result.columns));
|
|
expect(JSON.stringify(result.afterChange)).toEqual(JSON.stringify(initial.afterChange));
|
|
expect(JSON.stringify(result.afterRender)).toEqual(JSON.stringify(initial.afterRender));
|
|
expect((result.afterChange as any)()).toEqual('works!');
|
|
expect((result.afterRender as any)()).toEqual('also works!');
|
|
});
|
|
});
|
|
});
|