diff options
Diffstat (limited to 'lib/output/__tests__/website.js')
-rw-r--r-- | lib/output/__tests__/website.js | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/lib/output/__tests__/website.js b/lib/output/__tests__/website.js index 554c56c..501503a 100644 --- a/lib/output/__tests__/website.js +++ b/lib/output/__tests__/website.js @@ -1,3 +1,4 @@ +var fs = require('fs'); var generateMock = require('../generateMock'); var WebsiteGenerator = require('../website'); @@ -12,6 +13,54 @@ describe('WebsiteGenerator', function() { }); }); + describe('Glossary', function() { + var folder; + + before(function() { + return generateMock(WebsiteGenerator, { + 'README.md': 'Hello World', + 'SUMMARY.md': '* [Deep](folder/page.md)', + 'folder': { + 'page.md': 'Hello World' + }, + 'GLOSSARY.md': '# Glossary\n\n## Hello\n\nHello World' + }) + .then(function(_folder) { + folder = _folder; + }); + }); + + it('should generate a GLOSSARY.html', function() { + expect(folder).toHaveFile('GLOSSARY.html'); + }); + + it('should correctly resolve glossary links in README', function() { + var html = fs.readFileSync(folder + '/index.html', 'utf8'); + expect(html).toHaveDOMElement('.page-inner a[href="GLOSSARY.html#hello"]'); + }); + + it('should correctly resolve glossary links in directory', function() { + var html = fs.readFileSync(folder + '/folder/page.html', 'utf8'); + expect(html).toHaveDOMElement('.page-inner a[href="../GLOSSARY.html#hello"]'); + }); + + it('should accept a custom glossary file', function() { + return generateMock(WebsiteGenerator, { + 'README.md': 'Hello World', + 'book.json': '{ "structure": { "glossary": "custom.md" } }', + 'custom.md': '# Glossary\n\n## Hello\n\nHello World' + }) + .then(function(folder) { + expect(folder).toHaveFile('custom.html'); + expect(folder).toNotHaveFile('GLOSSARY.html'); + + var html = fs.readFileSync(folder + '/index.html', 'utf8'); + expect(html).toHaveDOMElement('.page-inner a[href="custom.html#hello"]'); + }); + }); + }); + + it('should copy asset files', function() { return generateMock(WebsiteGenerator, { 'README.md': 'Hello World', |