diff --git a/src/ns.page.history.js b/src/ns.page.history.js index 5a1c6a03..ed596d37 100644 --- a/src/ns.page.history.js +++ b/src/ns.page.history.js @@ -37,10 +37,9 @@ // user pressed back button in browser if (prevPage === url) { nsHistory._history.pop(); - - } else { - nsHistory._history.push(nsHistory._current); } + + nsHistory._history.push(nsHistory._current); } } diff --git a/test/spec/ns.page.js b/test/spec/ns.page.js index e8d56429..4826926b 100644 --- a/test/spec/ns.page.js +++ b/test/spec/ns.page.js @@ -1,5 +1,10 @@ describe('ns.page', function() { + beforeEach(function() { + this.sinon.stub(ns.page.history, '_current', null); + this.sinon.stub(ns.page.history, '_history', []); + }); + describe('ns.page.go', function() { describe('redirect', function() { @@ -226,6 +231,28 @@ describe('ns.page', function() { }); }); + describe('ns.page.history.push', function() { + beforeEach(function() { + this.sinon.stub(ns, 'Update', function() { + return { + start: function() { + return Vow.fulfill(); + } + }; + }); + }); + + it('Должен запомнить страницу после возврата на предыдущую', function() { + return ns.page.go('/inbox').then(function() { + return ns.page.go('/message/1').then(function() { + return ns.page.go('/inbox').then(function() { + expect(ns.page.history.getPrevious()).to.be.eql('/message/1'); + }); + }); + }); + }); + }); + }); });