From e35777176ff8c2c51bef90e301a5035fc4d40906 Mon Sep 17 00:00:00 2001 From: Angelos Chalaris Date: Sat, 10 Nov 2018 12:01:25 +0200 Subject: [PATCH] Additional tests --- test/isPrime.test.js | 3 +++ test/memoize.test.js | 3 +++ test/nodeListToArray.test.js | 3 +++ test/off.test.js | 28 ++++++++++++++++++++++++++++ test/on.test.js | 27 +++++++++++++++++++++++++++ 5 files changed, 64 insertions(+) diff --git a/test/isPrime.test.js b/test/isPrime.test.js index 2e967fce3..e64fdde4e 100644 --- a/test/isPrime.test.js +++ b/test/isPrime.test.js @@ -7,3 +7,6 @@ test('isPrime is a Function', () => { test('passed number is a prime', () => { expect(isPrime(11)).toBeTruthy(); }); +test('passed number is not a prime', () => { + expect(isPrime(10)).toBeFalsy(); +}); diff --git a/test/memoize.test.js b/test/memoize.test.js index fd906727b..886935616 100644 --- a/test/memoize.test.js +++ b/test/memoize.test.js @@ -12,6 +12,9 @@ test('Function works properly', () => { test('Function works properly', () => { expect(square(3)).toBe(9); }); +test('Function works properly, cache stores values (coverage)', () => { + expect(square(3)).toBe(9); +}); test('Cache stores values', () => { expect(Array.from(square.cache)).toEqual([[2, 4], [3, 9]]); }); diff --git a/test/nodeListToArray.test.js b/test/nodeListToArray.test.js index b775d168a..f8d9006af 100644 --- a/test/nodeListToArray.test.js +++ b/test/nodeListToArray.test.js @@ -4,3 +4,6 @@ const {nodeListToArray} = require('./_30s.js'); test('nodeListToArray is a Function', () => { expect(nodeListToArray).toBeInstanceOf(Function); }); +test('nodeListToArray returns an array of proper length', () => { + expect(nodeListToArray(document.childNodes).length).toBe(2); +}); diff --git a/test/off.test.js b/test/off.test.js index 0da5e9d94..a6fd08674 100644 --- a/test/off.test.js +++ b/test/off.test.js @@ -4,3 +4,31 @@ const {off} = require('./_30s.js'); test('off is a Function', () => { expect(off).toBeInstanceOf(Function); }); +test('off removes an event listener', () => { + let el = document.createElement('div'); + let val = false; + const fn = () => val = true; + el.addEventListener('click', fn); + off(el, 'click', fn); + var clickEvent = new MouseEvent('click', { + 'view': window, + 'bubbles': true, + 'cancelable': false + }); + el.dispatchEvent(clickEvent); + expect(val).toBeFalsy(); +}); +test('off removes an event listener', () => { + let el = document.createElement('div'); + let val = false; + const fn = () => val = true; + el.addEventListener('click', fn); + off(el, 'click', fn, {}); + var clickEvent = new MouseEvent('click', { + 'view': window, + 'bubbles': true, + 'cancelable': false + }); + el.dispatchEvent(clickEvent); + expect(val).toBeFalsy(); +}); diff --git a/test/on.test.js b/test/on.test.js index c757e9592..3acdff31f 100644 --- a/test/on.test.js +++ b/test/on.test.js @@ -4,3 +4,30 @@ const {on} = require('./_30s.js'); test('on is a Function', () => { expect(on).toBeInstanceOf(Function); }); +test('on creates an event listener', () => { + let el = document.createElement('div'); + let val = false; + const fn = () => val = true; + on(el, 'click', fn); + var clickEvent = new MouseEvent('click', { + 'view': window, + 'bubbles': true, + 'cancelable': false + }); + el.dispatchEvent(clickEvent); + expect(val).toBeTruthy(); +}); +test('on creates an event listener', () => { + let el = document.createElement('div'); + document.body.appendChild(el); + let val = false; + const fn = () => val = true; + on(document.body, 'click', fn, { target: 'div' }); + var clickEvent = new MouseEvent('click', { + 'view': window, + 'bubbles': true, + 'cancelable': false + }); + el.dispatchEvent(clickEvent); + expect(val).toBeTruthy(); +});