var fs = require("fs"); var path = require("path"); describe("Summary", function () { describe("Parsing", function() { var book; before(function() { return books.parse("summary") .then(function(_book) { book = _book; }); }); it("should correctly list items", function() { book.should.have.property("summary"); book.summary.should.have.property("chapters"); book.summary.chapters.should.have.lengthOf(4); }); it("should correctly mark non-existant entries", function() { book.summary.chapters[0].exists.should.have.equal(true); book.summary.chapters[1].exists.should.have.equal(true); book.summary.chapters[2].exists.should.have.equal(true); book.summary.chapters[3].exists.should.have.equal(false); }); }); describe("Generation", function() { var book; before(function() { return books.generate("summary", "website") .then(function(_book) { book = _book; }); }); it("should create files according to summary", function() { book.should.have.file("index.html"); book.should.have.file("PAGE1.html"); book.should.have.file("folder/PAGE2.html"); }); it("should correctly output summary", function() { var PAGE = fs.readFileSync( path.join(book.options.output, "index.html"), { encoding: "utf-8" } ); PAGE.should.be.html({ ".book-summary .chapter[data-level=\"0\"] a": { attributes: { href: "./index.html" } }, ".book-summary .chapter[data-level=\"1\"] a": { attributes: { href: "./PAGE1.html" } }, ".book-summary .chapter[data-level=\"2\"] a": { attributes: { href: "./folder/PAGE2.html" } } }); }); }); });