diff options
author | Samy Pessé <samypesse@gmail.com> | 2015-03-24 11:54:03 +0100 |
---|---|---|
committer | Samy Pessé <samypesse@gmail.com> | 2015-03-24 11:54:03 +0100 |
commit | afbca4bdf522f01e12cf61ec738c5c81fc05209b (patch) | |
tree | a8036419c8817e261f759a9fc0aab7511c1e071c | |
parent | b61371942b0b29df418a1d7fda4fbec82afb534f (diff) | |
download | gitbook-afbca4bdf522f01e12cf61ec738c5c81fc05209b.zip gitbook-afbca4bdf522f01e12cf61ec738c5c81fc05209b.tar.gz gitbook-afbca4bdf522f01e12cf61ec738c5c81fc05209b.tar.bz2 |
Improve tests for glossary
-rw-r--r-- | test/assertions.js | 33 | ||||
-rw-r--r-- | test/books/glossary/SUMMARY.md | 2 | ||||
-rw-r--r-- | test/books/glossary/folder/PAGE.md | 3 | ||||
-rw-r--r-- | test/glossary.js | 36 |
4 files changed, 51 insertions, 23 deletions
diff --git a/test/assertions.js b/test/assertions.js index 23feaf6..8bb440f 100644 --- a/test/assertions.js +++ b/test/assertions.js @@ -20,26 +20,27 @@ should.Assertion.add('jsonfile', function(file, description) { this.assert(JSON.parse(fs.readFileSync(path.resolve(this.obj.options.output, file), { encoding: "utf-8" }))); }); -should.Assertion.add('html', function(query, validations, description) { - validations = _.defaults(validations || {}, { - count: 1, - attributes: {} - }); - - +should.Assertion.add('html', function(rules, description) { this.params = { actual: "HTML string", operator: 'valid html', message: description }; - var $ = cheerio.load(this.obj); - var $el = $(query); - // Test number of elements - $el.should.have.lengthOf(validations.count); + _.each(rules, function(validations, query) { + validations = _.defaults(validations || {}, { + count: 1, + attributes: {} + }); + + var $el = $(query); + + // Test number of elements + $el.should.have.lengthOf(validations.count); - // Test text - if (validations.text !== undefined) $el.text().should.be.equal(validations.text); + // Test text + if (validations.text !== undefined) $el.text().should.be.equal(validations.text); - // Test attributes - _.each(validations.attributes, function(value, name) { - $el.attr(name).should.be.equal(value); + // Test attributes + _.each(validations.attributes, function(value, name) { + $el.attr(name).should.be.equal(value); + }); }); }); diff --git a/test/books/glossary/SUMMARY.md b/test/books/glossary/SUMMARY.md index ac9323c..deaea20 100644 --- a/test/books/glossary/SUMMARY.md +++ b/test/books/glossary/SUMMARY.md @@ -1 +1,3 @@ # Summary + +* [Page](folder/PAGE.md) diff --git a/test/books/glossary/folder/PAGE.md b/test/books/glossary/folder/PAGE.md new file mode 100644 index 0000000..33b17c2 --- /dev/null +++ b/test/books/glossary/folder/PAGE.md @@ -0,0 +1,3 @@ +# Page + +Just a page in a sub-directory to test relative link to glossary. diff --git a/test/glossary.js b/test/glossary.js index c616a51..acfd184 100644 --- a/test/glossary.js +++ b/test/glossary.js @@ -33,21 +33,43 @@ describe('Glossary', function () { }); describe('Page Integration', function() { - var page; + var readme, page; before(function() { - page = fs.readFileSync( + 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() { - page.should.be.html(".page-inner a[href='GLOSSARY.html#test']", { - count: 1, - text: "test", - attributes: { - title: "Just a simple and easy to understand test." + 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 } }); }); |