diff options
Diffstat (limited to 'test/glossary.js')
-rw-r--r-- | test/glossary.js | 97 |
1 files changed, 70 insertions, 27 deletions
diff --git a/test/glossary.js b/test/glossary.js index 5deb04c..631967e 100644 --- a/test/glossary.js +++ b/test/glossary.js @@ -1,35 +1,78 @@ +var fs = require('fs'); var path = require('path'); -var _ = require('lodash'); -var assert = require('assert'); -var cheerio = require('cheerio'); -var fs = require("fs"); -var fsUtil = require("../lib/utils/fs"); +describe('Glossary', function () { + describe('Parsing', function() { + var book; + before(function() { + return books.parse("glossary") + .then(function(_book) { + book = _book; + }); + }); -describe('Glossary Generation', function () { - it('should correctly replace glossary terms', function(done) { - testGeneration(books[0], "website", function(output) { - var content = fs.readFileSync(path.join(output, "index.html"), { encoding: "utf8" }); - var $ = cheerio.load(content); - - var $body = $(".page-inner"); - var $a = $("a[href='GLOSSARY.html#description']"); - assert($a.length == 1); - assert($a.text() == "description"); - }, done); + it('should correctly list items', function() { + book.should.have.property("glossary"); + book.glossary.should.have.lengthOf(2); + }); }); - it('should correctly replace glossary terms in sub pages', function(done) { - testGeneration(books[1], "website", function(output) { - var content = fs.readFileSync(path.join(output, "sub/test1.html"), { encoding: "utf8" }); - var $ = cheerio.load(content); - - var $body = $(".page-inner"); - var $a = $("a[href='../GLOSSARY.html#test']"); - assert($a.length == 1); - assert($a.text() == "test"); - assert($a.attr("title") == "a test text"); - }, done); + 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 + } + }); + }); + }); }); }); |