import * as jsUtils from '../src/jsUtils'; describe('jsUtils', () => { describe('ifUndefined', () => { it('returns the default value for undefined input', () => { const result = jsUtils.ifUndefined(undefined, 'abc'); expect(result).toEqual('abc'); }); it('returns the default value for null input', () => { const result = jsUtils.ifUndefined(null, 'abc'); expect(result).toEqual('abc'); }); it('returns the non-default input value for regular string input', () => { const result = jsUtils.ifUndefined('some random string', 'abc'); expect(result).toEqual('some random string'); }); }); describe('ifUndefined', () => { it('returns the default value for undefined input', () => { const result = jsUtils.ifUndefined(undefined, false); expect(result).toEqual(false); }); it('returns the default value for null input', () => { const result = jsUtils.ifUndefined(null, true); expect(result).toEqual(true); }); it('returns the non-default input value for regular boolean input', () => { const result = jsUtils.ifUndefined(true, false); expect(result).toEqual(true); }); }); describe('ifUndefined', () => { it('returns the default value for undefined input', () => { const result = jsUtils.ifUndefined(undefined, 123); expect(result).toEqual(123); }); it('returns the default value for null input', () => { const result = jsUtils.ifUndefined(null, 234); expect(result).toEqual(234); }); it('returns the non-default input value for regular Number input', () => { const result = jsUtils.ifUndefined(1234, 5678); expect(result).toEqual(1234); }); }); describe('convertToJSON', () => { it('returns undefined for undefined input', () => { const result = jsUtils.convertToJSON(undefined); expect(result).toEqual(undefined); }); it('returns null for null input', () => { const result = jsUtils.convertToJSON(null); expect(result).toEqual(null); }); it('returns the object for the object input', () => { const result = jsUtils.convertToJSON(['a', 'b']); expect(result).toEqual(['a', 'b']); }); it('returns the parsed JSON for the string input', () => { const result1 = jsUtils.convertToJSON('{"a":"b","c":"d"}'); expect(result1).toEqual({ a: 'b', c: 'd' }); const result2 = jsUtils.convertToJSON('[{"a":"b"},{"c":"d"}]'); expect(result2).toEqual([{ a: 'b' }, { c: 'd' }]); }); }); describe('cleanseJSObject', () => { xit('throws error for undefined input', () => { const result = jsUtils.cleanseJSObject(undefined); expect(result).toThrow(); }); xit('throws error for null input', () => { const result = jsUtils.cleanseJSObject(null); expect(result).toThrow(); }); it('returns cloned object for valid input', () => { const result = jsUtils.cleanseJSObject([{ a: 'b' }, { c: 'd' }]); expect(result).toEqual([{ a: 'b' }, { c: 'd' }]); }); }); describe('isEscKeyPress', () => { it('returns true if the key number is 27', () => { const result = jsUtils.isEscKeyPress(27); expect(result).toEqual(true); }); it('returns false if the key number is 27', () => { const result = jsUtils.isEscKeyPress(28); expect(result).toEqual(false); }); }); describe('safeParseInt', () => { it('returns zero for undefined', () => { expect(jsUtils.safeParseInt(undefined)).toEqual(0); }); it('returns zero for null', () => { expect(jsUtils.safeParseInt(null)).toEqual(0); }); it('parses integer number correctly in beginning of string input', () => { expect(jsUtils.safeParseInt('47.45G')).toEqual(47); }); it('returns 0 for string input whose starting characters are non-numeric', () => { expect(jsUtils.safeParseInt('G47.45')).toEqual(0); }); it('parses integer number correctly', () => { expect(jsUtils.safeParseInt(47.45)).toEqual(47); }); }); });