From 68abe168f88aa234ffb182b71f68b89aefcbd452 Mon Sep 17 00:00:00 2001 From: Sean Hamilton Date: Thu, 4 Jul 2019 10:17:36 +0100 Subject: [PATCH] test(size): add size function tests --- src/__tests__/size.spec.ts | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/__tests__/size.spec.ts diff --git a/src/__tests__/size.spec.ts b/src/__tests__/size.spec.ts new file mode 100644 index 00000000..924e611c --- /dev/null +++ b/src/__tests__/size.spec.ts @@ -0,0 +1,29 @@ +import size from '../size'; + +describe('size', () => { + test('should return a number', () => { + expect(typeof size({})).toBe('number'); + }); + + test('should return the size of the object (number of keys)', () => { + const objA = { + a: 1, + b: 2, + }; + const objB = { + a: 1, + b: 2, + c: 3, + }; + + expect(size(objA)).toBe(2); + expect(size(objB)).toBe(3); + }); + + test('should throw TypeError for invalid arguments', () => { + const invalidObj: unknown = 'testing'; + + expect(() => size(invalidObj as OObject)) + .toThrow(new TypeError('Expected Object, got string testing')); + }); +});