summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2015-03-24 11:54:03 +0100
committerSamy Pessé <samypesse@gmail.com>2015-03-24 11:54:03 +0100
commitafbca4bdf522f01e12cf61ec738c5c81fc05209b (patch)
treea8036419c8817e261f759a9fc0aab7511c1e071c
parentb61371942b0b29df418a1d7fda4fbec82afb534f (diff)
downloadgitbook-afbca4bdf522f01e12cf61ec738c5c81fc05209b.zip
gitbook-afbca4bdf522f01e12cf61ec738c5c81fc05209b.tar.gz
gitbook-afbca4bdf522f01e12cf61ec738c5c81fc05209b.tar.bz2
Improve tests for glossary
-rw-r--r--test/assertions.js33
-rw-r--r--test/books/glossary/SUMMARY.md2
-rw-r--r--test/books/glossary/folder/PAGE.md3
-rw-r--r--test/glossary.js36
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
}
});
});