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"); }); });