summaryrefslogtreecommitdiffstats
path: root/lib/output/modifiers/__tests__/annotateText.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/output/modifiers/__tests__/annotateText.js')
-rw-r--r--lib/output/modifiers/__tests__/annotateText.js49
1 files changed, 49 insertions, 0 deletions
diff --git a/lib/output/modifiers/__tests__/annotateText.js b/lib/output/modifiers/__tests__/annotateText.js
new file mode 100644
index 0000000..15d4c30
--- /dev/null
+++ b/lib/output/modifiers/__tests__/annotateText.js
@@ -0,0 +1,49 @@
+jest.autoMockOff();
+
+var Immutable = require('immutable');
+var cheerio = require('cheerio');
+var GlossaryEntry = require('../../../models/glossaryEntry');
+
+describe('annotateText', function() {
+ var annotateText = require('../annotateText');
+
+ var entries = Immutable.List([
+ GlossaryEntry({ name: 'Word' }),
+ GlossaryEntry({ name: 'Multiple Words' })
+ ]);
+
+ it('should annotate text', function() {
+ var $ = cheerio.load('<p>This is a word, and multiple words</p>');
+
+ annotateText(entries, $);
+
+ var links = $('a');
+ expect(links.length).toBe(2);
+
+ var word = $(links.get(0));
+ expect(word.attr('href')).toBe('/GLOSSARY.md#word');
+ expect(word.text()).toBe('word');
+ expect(word.hasClass('glossary-term')).toBeTruthy();
+
+ var words = $(links.get(1));
+ expect(words.attr('href')).toBe('/GLOSSARY.md#multiple-words');
+ expect(words.text()).toBe('multiple words');
+ expect(words.hasClass('glossary-term')).toBeTruthy();
+ });
+
+ it('should not annotate scripts', function() {
+ var $ = cheerio.load('<script>This is a word, and multiple words</script>');
+
+ annotateText(entries, $);
+ expect($('a').length).toBe(0);
+ });
+
+ it('should not annotate when has class "no-glossary"', function() {
+ var $ = cheerio.load('<p class="no-glossary">This is a word, and multiple words</p>');
+
+ annotateText(entries, $);
+ expect($('a').length).toBe(0);
+ });
+});
+
+