From 465b5772763ccb8d4970d4c55e30a518abb7be3e Mon Sep 17 00:00:00 2001 From: Ricardo Cino Date: Sun, 26 Jun 2022 01:26:19 +0200 Subject: chore: moved tests to ./test directory (#366) * chore: allow coverage to be generated from non-tested files --- test/jsUtils.test.ts | 113 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 test/jsUtils.test.ts (limited to 'test/jsUtils.test.ts') diff --git a/test/jsUtils.test.ts b/test/jsUtils.test.ts new file mode 100644 index 000000000..8ef69b46f --- /dev/null +++ b/test/jsUtils.test.ts @@ -0,0 +1,113 @@ +import * as jsUtils from '../src/jsUtils'; + +describe('jsUtils', () => { + describe('ifUndefinedString', () => { + it('returns the default value for undefined input', () => { + const result = jsUtils.ifUndefinedString(undefined, 'abc'); + expect(result).toEqual('abc'); + }); + + it('returns the default value for null input', () => { + const result = jsUtils.ifUndefinedString(null, 'abc'); + expect(result).toEqual('abc'); + }); + + it('returns the non-default input value for regular string input', () => { + const result = jsUtils.ifUndefinedString('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, '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' }]); + }); + }); +}); -- cgit v1.2.3-70-g09d2