diff options
Diffstat (limited to 'test/navigation.js')
-rw-r--r-- | test/navigation.js | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/test/navigation.js b/test/navigation.js new file mode 100644 index 0000000..ddcc86e --- /dev/null +++ b/test/navigation.js @@ -0,0 +1,61 @@ +var should = require('should'); + +describe('Navigation', function () { + var book; + + before(function() { + return books.parse("summary") + .then(function(_book) { + book = _book; + }); + }); + + it('should correctly parse navigation as a map', function() { + book.should.have.property("navigation"); + book.navigation.should.have.property("README.md"); + book.navigation.should.have.property("README.md"); + }); + + it('should correctly include filenames', function() { + book.navigation.should.have.property("README.md"); + book.navigation.should.have.property("PAGE1.md"); + book.navigation.should.have.property("folder/PAGE2.md"); + book.navigation.should.not.have.property("NOTFOUND.md"); + }); + + it('should correctly detect next/prev for README', function() { + var README = book.navigation['README.md']; + + README.index.should.equal(0); + README.should.have.property('next'); + should(README.prev).not.be.ok(); + + README.next.should.have.property('path'); + README.next.path.should.equal('PAGE1.md'); + }); + + it('should correctly detect next/prev a page', function() { + var PAGE = book.navigation['PAGE1.md']; + + PAGE.index.should.equal(1); + PAGE.should.have.property('next'); + PAGE.should.have.property('prev'); + + PAGE.prev.should.have.property('path'); + PAGE.prev.path.should.equal('README.md'); + + PAGE.next.should.have.property('path'); + PAGE.next.path.should.equal('folder/PAGE2.md'); + }); + + it('should correctly detect next/prev for last page', function() { + var PAGE = book.navigation['folder/PAGE2.md']; + + PAGE.index.should.equal(2); + PAGE.should.have.property('prev'); + should(PAGE.next).not.be.ok(); + + PAGE.prev.should.have.property('path'); + PAGE.prev.path.should.equal('PAGE1.md'); + }); +}); |