diff --git a/src/core/ticker/Ticker.js b/src/core/ticker/Ticker.js index 40df138..1d58724 100644 --- a/src/core/ticker/Ticker.js +++ b/src/core/ticker/Ticker.js @@ -243,7 +243,7 @@ // Go from highest to lowest priority while (current) { - if (listener.priority >= current.priority) + if (listener.priority > current.priority) { listener.connect(previous); break; diff --git a/src/core/ticker/Ticker.js b/src/core/ticker/Ticker.js index 40df138..1d58724 100644 --- a/src/core/ticker/Ticker.js +++ b/src/core/ticker/Ticker.js @@ -243,7 +243,7 @@ // Go from highest to lowest priority while (current) { - if (listener.priority >= current.priority) + if (listener.priority > current.priority) { listener.connect(previous); break; diff --git a/test/core/Ticker.js b/test/core/Ticker.js index cd8e33c..7154220 100644 --- a/test/core/Ticker.js +++ b/test/core/Ticker.js @@ -150,6 +150,30 @@ expect(this.length()).to.equal(length); }); + it('should call when adding same priority', function () + { + const length = this.length(); + const listener1 = sinon.spy(); + const listener2 = sinon.spy(); + const listener3 = sinon.spy(); + + shared.add(listener1) + .add(listener2) + .add(listener3); + + shared.update(); + + expect(this.length()).to.equal(length + 3); + + sinon.assert.callOrder(listener1, listener2, listener3); + + shared.remove(listener1) + .remove(listener2) + .remove(listener3); + + expect(this.length()).to.equal(length); + }); + it('should remove once listener in a stack', function () { const length = this.length();