From 0e09c6bad609239eb31c30fa89b820bf70b7b66c Mon Sep 17 00:00:00 2001 From: Robert Wagner Date: Sun, 14 Jul 2019 22:22:35 -0400 Subject: [PATCH] Remove drop util I think this is redundant, as we can call `slice` directly. --- babel.config.js | 1 - package.json | 1 - src/js/evented.js | 3 +-- src/js/utils/general.js | 14 -------------- test/unit/evented.spec.js | 11 +++++++++++ test/unit/tour.spec.js | 18 ------------------ yarn.lock | 25 +++++++++---------------- 7 files changed, 21 insertions(+), 52 deletions(-) diff --git a/babel.config.js b/babel.config.js index d48c918ad..72761c2cd 100644 --- a/babel.config.js +++ b/babel.config.js @@ -28,7 +28,6 @@ module.exports = function(api) { ] ], plugins: [ - 'rewire-exports', 'transform-es2015-modules-commonjs' ] } diff --git a/package.json b/package.json index 7ba012e2c..7bfee3a8b 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,6 @@ "autoprefixer": "^9.6.1", "babel-core": "^7.0.0-bridge.0", "babel-jest": "^24.7.1", - "babel-plugin-rewire-exports": "^1.2.0", "babel-plugin-transform-es2015-modules-commonjs": "^6.26.2", "better-docs": "^1.1.6", "chai": "^4.2.0", diff --git a/src/js/evented.js b/src/js/evented.js index 4118a72d3..2feb70132 100644 --- a/src/js/evented.js +++ b/src/js/evented.js @@ -1,4 +1,3 @@ -import { drop } from './utils/general'; import { isUndefined } from './utils/type-check'; export class Evented { @@ -36,7 +35,7 @@ export class Evented { trigger(event) { if (!isUndefined(this.bindings) && this.bindings[event]) { - const args = drop(Array.prototype.slice.call(arguments)); + const args = Array.prototype.slice.call(arguments, 1); this.bindings[event].forEach((binding, index) => { const { ctx, handler, once } = binding; diff --git a/src/js/utils/general.js b/src/js/utils/general.js index b1e593cdd..69ac31179 100644 --- a/src/js/utils/general.js +++ b/src/js/utils/general.js @@ -71,20 +71,6 @@ export function debounce(func, wait, immediate) { }; } -/** - * Creates a slice of `arr` with n elements dropped from the beginning. - * @param {Array} arr - * @param {Number} n - * @return {*} - */ -export function drop(arr, n = 1) { - if (Array.isArray(arr)) { - return arr.slice(n); - } - - return []; -} - /** * Determines options for the tooltip and initializes * `this.tooltip` as a Tippy.js instance. diff --git a/test/unit/evented.spec.js b/test/unit/evented.spec.js index 0948bcc41..f1f7e2e77 100644 --- a/test/unit/evented.spec.js +++ b/test/unit/evented.spec.js @@ -1,4 +1,5 @@ import { Evented } from '../../src/js/evented.js'; +import { spy } from 'sinon'; describe('Evented', () => { let testEvent, testOnTriggered; @@ -20,6 +21,16 @@ describe('Evented', () => { testEvent.trigger('testOn'); expect(testOnTriggered, 'true is returned from event trigger').toBeTruthy(); }); + + it('passes arguments to handler functions', () => { + const handlerSpy = spy(); + testEvent.on('myEvent', handlerSpy); + testEvent.trigger('myEvent', { + step: { id: 'test', text: 'A step' }, + previous: null + }); + expect(handlerSpy.args).toEqual([[{ 'previous': null, 'step': { 'id': 'test', 'text': 'A step' } }]]); + }); }); describe('off()', () => { diff --git a/test/unit/tour.spec.js b/test/unit/tour.spec.js index 9628a4292..8fa16278d 100644 --- a/test/unit/tour.spec.js +++ b/test/unit/tour.spec.js @@ -5,7 +5,6 @@ import { Step } from '../../src/js/step.js'; import tippy from 'tippy.js'; import { defaults as tooltipDefaults } from '../../src/js/utils/tooltip-defaults'; import { spy } from 'sinon'; -import { drop, rewire$drop, restore } from '../../src/js/utils/general'; // since importing non UMD, needs assignment window.Shepherd = Shepherd; @@ -380,14 +379,6 @@ describe('Tour | Top-Level Class', function() { }); describe('.show()', function() { - let dropSpy; - - beforeEach(() => { - rewire$drop(dropSpy = spy(drop)); - }); - - afterEach(restore); - it('show short-circuits if next is not found', function() { let showFired = false; instance.start(); @@ -408,15 +399,6 @@ describe('Tour | Top-Level Class', function() { shouldShowStep = true; instance.next(); expect(instance.getCurrentStep().id, 'step shown because `showOn` returns true').toBe('skipped-step'); - - // This spy checks that, when we call `trigger` with `show`, that we pass `arguments` down. - const dropArguments = dropSpy.args[2][0]; - const dropReturnValue = dropSpy.returnValues[2][0]; - expect(dropArguments[0]).toBe('show'); - expect(dropArguments[1].previous).toBe(null); - expect(dropArguments[1].step.id).toBe('test'); - expect(dropReturnValue.previous).toBe(null); - expect(dropReturnValue.step.id).toBe('test'); }); it(`sets the instance on \`Shepherd.activeTour\` if it's not already set`, function() { diff --git a/yarn.lock b/yarn.lock index 8bb5f1403..10d8ff747 100644 --- a/yarn.lock +++ b/yarn.lock @@ -669,15 +669,6 @@ dependencies: regenerator-runtime "^0.13.2" -"@babel/template@7", "@babel/template@^7.1.0", "@babel/template@^7.4.0", "@babel/template@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.4.tgz#f4b88d1225689a08f5bc3a17483545be9e4ed237" - integrity sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.4.4" - "@babel/types" "^7.4.4" - "@babel/template@7.0.0-beta.44": version "7.0.0-beta.44" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.44.tgz#f8832f4fdcee5d59bf515e595fc5106c529b394f" @@ -688,6 +679,15 @@ babylon "7.0.0-beta.44" lodash "^4.2.0" +"@babel/template@^7.1.0", "@babel/template@^7.4.0", "@babel/template@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.4.tgz#f4b88d1225689a08f5bc3a17483545be9e4ed237" + integrity sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.4.4" + "@babel/types" "^7.4.4" + "@babel/traverse@7.0.0-beta.44": version "7.0.0-beta.44" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.44.tgz#a970a2c45477ad18017e2e465a0606feee0d2966" @@ -1495,13 +1495,6 @@ babel-plugin-jest-hoist@^24.6.0: dependencies: "@types/babel__traverse" "^7.0.6" -babel-plugin-rewire-exports@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-rewire-exports/-/babel-plugin-rewire-exports-1.2.0.tgz#a1680b55cb1332cde38cf29e1e1fa317ef76ddcc" - integrity sha512-Y+WD3zUnCP2HDO2LnF9DUbeUXU0TYJ3MImhDDUfIcmBiHpBKlHcao8ieqVJwS4KqAoAWMLttaPF4Opsw+exSsw== - dependencies: - "@babel/template" "7" - babel-plugin-transform-es2015-modules-commonjs@^6.26.2: version "6.26.2" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3"