Added test for selectorizeTest. Improved tests for buildPath.
Project: http://git-wip-us.apache.org/repos/asf/incubator-senssoft-useralejs/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-senssoft-useralejs/commit/2faab6e5 Tree: http://git-wip-us.apache.org/repos/asf/incubator-senssoft-useralejs/tree/2faab6e5 Diff: http://git-wip-us.apache.org/repos/asf/incubator-senssoft-useralejs/diff/2faab6e5 Branch: refs/heads/master Commit: 2faab6e529f26eb499ced3a7e709021d8db0c527 Parents: fe6a9ba Author: Rob Foley <rob.foley...@gmail.com> Authored: Thu Sep 22 12:31:18 2016 -0400 Committer: Rob Foley <rob.foley...@gmail.com> Committed: Thu Sep 22 12:31:18 2016 -0400 ---------------------------------------------------------------------- test/packageLogs_spec.js | 65 ++++++++++++++++++++++++------------------- 1 file changed, 37 insertions(+), 28 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-senssoft-useralejs/blob/2faab6e5/test/packageLogs_spec.js ---------------------------------------------------------------------- diff --git a/test/packageLogs_spec.js b/test/packageLogs_spec.js index 37726e6..7d3af1b 100644 --- a/test/packageLogs_spec.js +++ b/test/packageLogs_spec.js @@ -17,7 +17,9 @@ import { expect } from 'chai'; import jsdom from 'jsdom'; import fs from 'fs'; -import * as mod from '../src/packageLogs'; +import { + packageLog, initPackager, getLocation, getSelector, buildPath, selectorizePath +} from '../src/packageLogs'; describe('packageLogs', () => { const url = 'file://' + __dirname + '/packageLogs.html'; @@ -25,34 +27,34 @@ describe('packageLogs', () => { describe('packageLog', () => { it('only executes if on', (done) => { - mod.initPackager([], { on: true }); + initPackager([], { on: true }); const evt = { target: {}, type: 'test' }; - expect(mod.packageLog(evt)).to.equal(true); + expect(packageLog(evt)).to.equal(true); - mod.initPackager([], { on: false }); - expect(mod.packageLog({})).to.equal(false); + initPackager([], { on: false }); + expect(packageLog({})).to.equal(false); done(); }); it('calls detailFcn with the event as an argument if provided', (done) => { - mod.initPackager([], { on: true }); + initPackager([], { on: true }); let called = false; const evt = { target: {}, type: 'test' }; const detailFcn = (e) => { called = true; expect(e).to.equal(evt); }; - mod.packageLog(evt, detailFcn); + packageLog(evt, detailFcn); expect(called).to.equal(true); done(); }); it('packages logs', (done) => { - mod.initPackager([], { on: true }); + initPackager([], { on: true }); const evt = { target: {}, type: 'test' }; - expect(mod.packageLog(evt)).to.equal(true); + expect(packageLog(evt)).to.equal(true); done(); }); }); @@ -73,7 +75,7 @@ describe('packageLogs', () => { ele.addEventListener('click', (e) => { e.pageX = 0; e.pageY = 0; - expect(mod.getLocation(e)).to.deep.equal({ x: 0, y: 0 }); + expect(getLocation(e)).to.deep.equal({ x: 0, y: 0 }); done(); }); ele.dispatchEvent(evt); @@ -98,7 +100,7 @@ describe('packageLogs', () => { document.documentElement.scrollTop = 0; const originalDocument = global.document; global.document = document; - expect(mod.getLocation(e)).to.deep.equal({ x: 0, y: 0 }); + expect(getLocation(e)).to.deep.equal({ x: 0, y: 0 }); global.document = originalDocument; done(); }); @@ -110,7 +112,7 @@ describe('packageLogs', () => { it('fails to null', (done) => { let hadError = false; try { - mod.getLocation(null); + getLocation(null); } catch (e) { hadError = true; } @@ -119,6 +121,17 @@ describe('packageLogs', () => { }); }); + describe('selectorizePath', () => { + it('returns a new array of the same length provided', (done) => { + const arr = [{}, {}]; + const ret = selectorizePath(arr); + expect(ret).to.be.instanceof(Array); + expect(ret).to.not.equal(arr); + expect(ret.length).to.equal(arr.length); + done(); + }); + }); + describe('getSelector', () => { it('builds a selector', (done) => { jsdom.env({ @@ -126,14 +139,14 @@ describe('packageLogs', () => { done: (err, window) => { const document = window.document; const element = document.createElement('div'); - expect(mod.getSelector(element)).to.equal('div'); + expect(getSelector(element)).to.equal('div'); element.id = 'bar'; - expect(mod.getSelector(element)).to.equal('div#bar'); + expect(getSelector(element)).to.equal('div#bar'); element.removeAttribute('id'); element.classList.add('baz'); - expect(mod.getSelector(element)).to.equal('div.baz'); + expect(getSelector(element)).to.equal('div.baz'); element.id = 'bar'; - expect(mod.getSelector(element)).to.equal('div#bar.baz'); + expect(getSelector(element)).to.equal('div#bar.baz'); done(); }, }); @@ -143,14 +156,14 @@ describe('packageLogs', () => { jsdom.env({ url, html, done: (err, window) => { - expect(mod.getSelector(window)).to.equal('Window'); + expect(getSelector(window)).to.equal('Window'); done(); }, }); }); it('handles a non-null unknown value', (done) => { - expect(mod.getSelector('foo')).to.equal('Unknown'); + expect(getSelector('foo')).to.equal('Unknown'); done(); }); }); @@ -165,11 +178,9 @@ describe('packageLogs', () => { const evt = document.createEvent('CustomEvent'); evt.initEvent('testEvent', true, true); document.body.appendChild(ele); - ele.addEventListener('testEvent', (e) => { - expect(mod.buildPath(e)).to.deep.equal(['div', 'body', 'html']); - done(); - }); ele.dispatchEvent(evt); + expect(buildPath(evt)).to.deep.equal(['div', 'body', 'html']); + done(); }, }); }); @@ -181,14 +192,12 @@ describe('packageLogs', () => { const document = window.document; const ele = document.createElement('div'); const evt = document.createEvent('CustomEvent'); - evt.initEvent('testEvent', true, true); document.body.appendChild(ele); - ele.addEventListener('testEvent', (e) => { - e.path = [ele, ele.parentElement, ele.parentElement.parentElement]; - expect(mod.buildPath(e)).to.deep.equal(['div', 'body', 'html']); - done(); - }); + evt.initEvent('testEvent', true, true); ele.dispatchEvent(evt); + evt.path = [ele, ele.parentElement, ele.parentElement.parentElement]; + expect(buildPath(evt)).to.deep.equal(['div', 'body', 'html']); + done(); }, }); });