display history of topic updates on topic details page
[websub-hub] / test / src / template / template-helper.js
index 4ddf36060cb85592d6a3f5816d0ad0356f84ea3e..5a62a7c4b15f4d68a9c12f1a61461eda6c8c520d 100644 (file)
@@ -3,67 +3,8 @@
 
 const assert = require('assert');
 const th = require('../../../src/template/template-helper');
-const Config = require('../../../config');
-const config = new Config('test');
 
 describe('Template Helper', function () {
-  let ctx;
-
-  beforeEach(function () {
-    ctx = {};
-  });
-
-  describe('dateOrNot', function () {
-    let date, otherwise;
-    beforeEach(function () {
-      date = new Date();
-      otherwise = 'otherwise';
-    });
-    it('covers', function () {
-      const result = th.dateOrNot(date, otherwise);
-      assert.strictEqual(result, date.toString());
-    });
-    it('covers no date', function () {
-      date = undefined;
-      const result = th.dateOrNot(date, otherwise);
-      assert.strictEqual(result, otherwise);
-    });
-    it('covers ms', function () {
-      const result = th.dateOrNot(date.getTime(), otherwise);
-      assert.strictEqual(result, date.toString());
-    });
-    it('covers naught', function () {
-      const result = th.dateOrNot(0, otherwise);
-      assert.strictEqual(result, otherwise);
-    });
-    it('covers the infinite', function () {
-      const result = th.dateOrNot(-Infinity, otherwise);
-      assert.strictEqual(result, otherwise);
-    });
-  }); // dateOrNot
-
-  describe('secondsToPeriod', function () {
-    it('covers seconds', function () {
-      const result = th.secondsToPeriod(45);
-      assert.strictEqual(result, '45 seconds');
-    });
-    it('covers minutes', function () {
-      const result = th.secondsToPeriod(105);
-      assert.strictEqual(result, '1 minute 45 seconds');
-    });
-    it('covers hours', function () {
-      const result = th.secondsToPeriod(3705);
-      assert.strictEqual(result, '1 hour 1 minute 45 seconds');
-    });
-    it('covers days', function () {
-      const result = th.secondsToPeriod(90105);
-      assert.strictEqual(result, '1 day 1 hour 1 minute 45 seconds');
-    });
-    it('covers months', function () {
-      const result = th.secondsToPeriod(5274105);
-      assert.strictEqual(result, '2 months 1 day 1 hour 1 minute 45 seconds');
-    });
-  }); // secondsToPeriod
 
   describe('renderTopicRow', function () {
     let topic, subscribers;
@@ -75,6 +16,12 @@ describe('Template Helper', function () {
       const result = th.renderTopicRow(topic, subscribers);
       assert(result);
     });
+    it('covers empty', function () {
+      topic = null;
+      subscribers = null;
+      const result = th.renderTopicRow(topic, subscribers);
+      assert(result);
+    });
     it('covers no link', function () {
       subscribers = [{}, {}];
       const result = th.renderTopicRow(topic, subscribers, false);
@@ -103,6 +50,10 @@ describe('Template Helper', function () {
       const result = th.renderSubscriptionRow(subscription);
       assert(result);
     });
+    it('covers empty', function () {
+      const result = th.renderSubscriptionRow();
+      assert(result);
+    });
   }); // renderSubscriptionRow
 
   describe('renderSubscriptionRowHeader', function () {
@@ -112,95 +63,19 @@ describe('Template Helper', function () {
     });
   }); // renderSubscriptionRowHeader
 
-  describe('htmlHead', function () {
-    let pagePathLevel, pageTitle, headElements;
-    beforeEach(function () {
-      pagePathLevel = 2;
-      pageTitle = 'title';
+  describe('xmlEscape', function () {
+    it('ignores numbers', function () {
+      const result = th.xmlEscape(3);
+      assert.strictEqual(result, 3);
     });
-    it('covers', function () {
-      const result = th.htmlHead(pagePathLevel, pageTitle, headElements);
-      assert(result);
+    it('ignores objects', function () {
+      const result = th.xmlEscape({});
+      assert.strictEqual(result, undefined);
     });
-    it('covers elements', function () {
-      headElements = [ '<div>foop</div>', '<div>poof</div>' ];
-      const result = th.htmlHead(pagePathLevel, pageTitle, headElements);
-      assert(result);
-    });
-  }); // htmlHead
-
-  describe('htmlTail', function () {
-    it('covers', function () {
-      const result = th.htmlTail();
-      assert(result);
-    });
-  }); // htmlTail
-
-  describe('renderNavLink', function () {
-    let nav;
-    beforeEach(function () {
-      nav = {
-        href: 'https://example.com/',
-        text: 'example',
-      };
-    });
-    it('covers no class', function () {
-      const result = th.renderNavLink(nav);
-      assert(result);
-    });
-    it('covers class', function () {
-      nav.class = 'foo bar';
-      const result = th.renderNavLink(nav);
-      assert(result);
-    });
-  }); // renderNavLink
-
-  describe('htmlHeader', function () {
-    let pageTitle, navLinks;
-    beforeEach(function () {
-      pageTitle = 'title';
-      navLinks = [];
-    });
-    it('covers no links', function () {
-      const result = th.htmlHeader(pageTitle);
-      assert(result);
-    });
-    it('covers links', function () {
-      navLinks = [
-        {
-          href: 'https://exmaple.com/',
-          text: 'example',
-        },
-      ];
-      const result = th.htmlHeader(pageTitle, navLinks);
-      assert(result);
-    });
-  }); // htmlHeader
-
-  describe('htmlFooter', function () {
-    it('covers', function () {
-      const result = th.htmlFooter();
-      assert(result);
-    });
-  }); // htmlFooter
-
-  describe('htmlTemplate', function () {
-    let pagePathLevel, pageTitle, headElements, navLinks, main;
-    beforeEach(function () {
-      pagePathLevel = 1;
-      pageTitle = 'title';
-      headElements = [];
-      navLinks = [];
-      main = [];
-    });
-    it('covers', function () {
-      const result = th.htmlTemplate(pagePathLevel, pageTitle, headElements, navLinks, main);
-      assert(result);
-    });
-    it('covers defaults', function () {
-      const result = th.htmlTemplate(pagePathLevel, pageTitle);
-      assert(result);
+    it('escapes a thing', function () {
+      const result = th.xmlEscape('&');
+      assert.strictEqual(result, '&amp;');
     });
-  }); // htmlTemplate
+  }); // xmlEscape
 
 });