/* eslint-env mocha */
'use strict';
-const assert = require('assert');
+const assert = require('node: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;
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);
const result = th.renderSubscriptionRow(subscription);
assert(result);
});
+ it('covers empty', function () {
+ const result = th.renderSubscriptionRow();
+ assert(result);
+ });
}); // renderSubscriptionRow
describe('renderSubscriptionRowHeader', 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, '&');
});
- }); // htmlTemplate
+ }); // xmlEscape
});