49d3b15512456de4d5b551149865da8c4469a7e4
[squeep-indie-auther] / test / src / template / admin-maintenance-html.js
1 /* eslint-env mocha */
2 'use strict';
3
4 const assert = require('assert');
5 const template = require('../../../src/template/admin-maintenance-html');
6 const Config = require('../../../config');
7 const StubLogger = require('../../stub-logger');
8 const lint = require('html-minifier-lint').lint; // eslint-disable-line node/no-unpublished-require
9
10 const stubLogger = new StubLogger();
11
12 function lintHtml(html) {
13 const result = lint(html);
14 stubLogger.debug('validHtml', '', { result, html });
15 assert(!result);
16 }
17
18 describe('Admin Management HTML Template', function () {
19 let ctx, config;
20 beforeEach(function () {
21 ctx = {
22 almanac: [{
23 event: 'exampleChore',
24 date: new Date(),
25 }],
26 chores: {
27 exampleChore: {
28 intervalMs: 86400,
29 nextSchedule: new Date(),
30 },
31 },
32 };
33 config = new Config('test');
34 });
35 it('renders', function () {
36 const result = template(ctx, config);
37 lintHtml(result);
38 assert(result);
39 });
40 it('covers failsafes', function () {
41 delete ctx.almanac;
42 delete ctx.chores;
43 const result = template(ctx, config);
44 lintHtml(result);
45 assert(result);
46 });
47 }); // Admin Ticket HTML Template