var fs = require('fs'); var path = require('path'); describe('Glossary', function () { describe('Parsing', function() { var book; before(function() { return books.parse("glossary") .then(function(_book) { book = _book; }); }); it('should correctly list items', function() { book.should.have.property("glossary"); book.glossary.should.have.lengthOf(3); }); }); describe('Generation', function() { var book; before(function() { return books.generate("glossary", "website") .then(function(_book) { book = _book; }); }); it('should correctly generate a GLOSSARY.html', function() { book.should.have.file("GLOSSARY.html"); }); describe('Page Integration', function() { var readme, page; before(function() { readme = fs.readFileSync( path.join(book.options.output, "index.html"), { encoding: "utf-8" } ); page = fs.readFileSync( path.join(book.options.output, "folder/PAGE.html"), { encoding: "utf-8" } ); }); it('should correctly replaced terms by links', function() { readme.should.be.html({ ".page-inner a[href='GLOSSARY.html#test']": { count: 1, text: "test", attributes: { title: "Just a simple and easy to understand test." } } }); }); it('should correctly replaced terms by links (relative)', function() { page.should.be.html({ ".page-inner a[href='../GLOSSARY.html#test']": { count: 1 } }); }); it('should not replace terms in codeblocks', function() { readme.should.be.html({ ".page-inner code a": { count: 0 } }); }); it('should correctly select the longest term', function() { readme.should.be.html({ ".page-inner a[href='GLOSSARY.html#test_long']": { count: 1, text: "test long" } }); }); }); }); });