import { quicklyValidateIconSet } from '../lib/icon-set/validate-basic'; describe('Testing validation', () => { test('Not object', () => { expect(quicklyValidateIconSet(void 0)).toBe(null); expect(quicklyValidateIconSet({})).toBe(null); expect(quicklyValidateIconSet(null)).toBe(null); expect(quicklyValidateIconSet([])).toBe(null); }); test('Valid sets', () => { expect( quicklyValidateIconSet({ prefix: 'foo', icons: { bar: { body: '', }, }, width: 24, height: 24, }) ).toEqual({ prefix: 'foo', icons: { bar: { body: '', }, }, width: 24, height: 24, }); expect( quicklyValidateIconSet({ prefix: 'foo', icons: { bar: { body: '', width: 32, height: 32, rotate: 0, hFlip: false, vFlip: true, // Legacy property verticalAlign: -0.14, }, }, aliases: { baz: { parent: 'bar', hFlip: true, }, }, width: 24, height: 24, }) ).toEqual({ prefix: 'foo', icons: { bar: { body: '', width: 32, height: 32, rotate: 0, hFlip: false, vFlip: true, verticalAlign: -0.14, }, }, aliases: { baz: { parent: 'bar', hFlip: true, }, }, width: 24, height: 24, }); // Empty is allowed expect( quicklyValidateIconSet({ prefix: 'foo', icons: {}, }) ).toEqual({ prefix: 'foo', icons: {}, }); }); test('Missing required properties', () => { expect( quicklyValidateIconSet({ prefix: 'foo', }) ).toBe(null); expect( quicklyValidateIconSet({ icons: {}, }) ).toBe(null); }); test('Invalid optional properties', () => { expect( quicklyValidateIconSet({ prefix: 'foo', icons: { icon1: { body: '', }, }, height: 24, // Object width: { foo: 1, }, }) ).toBe(null); expect( quicklyValidateIconSet({ prefix: 'foo', icons: { icon1: { body: '', }, }, height: 24, // Object left: null, }) ).toBe(null); expect( quicklyValidateIconSet({ prefix: 'foo', icons: { icon1: { body: '', }, }, height: 24, // String width: '32', }) ).toBe(null); }); });