diff --git a/modules/__tests__/Redirect-test.js b/modules/__tests__/Redirect-test.js index 6f64df4221..9130a5f208 100644 --- a/modules/__tests__/Redirect-test.js +++ b/modules/__tests__/Redirect-test.js @@ -26,4 +26,47 @@ describe('A ', function () { done(); }); }); + + it('calls onEnter but not onLeave', function (done) { + var enterCalled = 0; + var leaveCalled = 0; + var onEnter = function () { enterCalled++ }; + var onLeave = function() { leaveCalled++ }; + render(( + + + + + + + ), node, function() { + expect(enterCalled).toEqual(1); + expect(leaveCalled).toEqual(0); + done(); + }); + }); + + it('doesn\'t call onEnter or onLeave when redirecting inside the same parent', function (done) { + var enterCalled = 0; + var leaveCalled = 0; + var onEnter = function () { enterCalled++ }; + var onLeave = function() { leaveCalled++ }; + render(( + + + + + + + ), node, function() { + expect(this.state.location.pathname).toEqual('/messages/5/details'); + expect(enterCalled).toEqual(1); + expect(leaveCalled).toEqual(0); + this.transitionTo("/messages/6"); + expect(this.state.location.pathname).toEqual('/messages/6/details'); + expect(enterCalled).toEqual(1); + expect(leaveCalled).toEqual(0); + done(); + }); + }); });