From 5e42af216ebc0ccda17cd23f818ecbd6f02bbdc7 Mon Sep 17 00:00:00 2001 From: Sean Hamilton Date: Mon, 3 Dec 2018 19:51:25 +0000 Subject: [PATCH] tests(every): add tests for every function --- tests/every.test.js | 69 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 tests/every.test.js diff --git a/tests/every.test.js b/tests/every.test.js new file mode 100644 index 00000000..214eabbf --- /dev/null +++ b/tests/every.test.js @@ -0,0 +1,69 @@ +import every from '../src/every'; + +describe('every', () => { + test('should return false if the object specified isn\'t an object', () => { + const equal = every('test', () => {}); + + expect(equal).toBe(false); + }); + + test('should return false if the object specified is empty', () => { + const equal = every({}, () => {}); + + expect(equal).toBe(false); + }); + + test('should return false if the iterator isn\'t provided', () => { + const equal = every({}); + + expect(equal).toBe(false); + }); + + test('should return false if the iterator isn\'t a function', () => { + const equal = every({}, 'test'); + + expect(equal).toBe(false); + }); + + test('should return true if all values evaluate to true', () => { + const equal = every({ a: 1, b: 1, c: 1 }, (key, value) => value === 1); + + expect(equal).toBe(true); + }); + + test('should return false if one or more values evaluate to false', () => { + const equal = every({ a: 1, b: 1, c: 2 }, (key, value) => value === 1); + + expect(equal).toBe(false); + }); + + test('should return true if all values including deep object values evaluate to true when follow is true', () => { + const obj = { + a: 1, + b: 1, + c: 1, + d: { + e: 1, + }, + }; + + const equal = every(obj, (key, value) => value === 1, true); + + expect(equal).toBe(true); + }); + + test('should return false if one or more values including deep object values evaluate to false when follow is true', () => { + const obj = { + a: 1, + b: 1, + c: 1, + d: { + e: 2, + }, + }; + + const equal = every(obj, (key, value) => value === 1, true); + + expect(equal).toBe(false); + }); +});