UNPKG

2.12 kBJavaScriptView Raw
1const test = require('tape');
2const template = require('../bin/lib/template');
3
4test('Template', function(assert){
5
6 {
7 let message = 'requires config object';
8 assert.throws(function(){
9 template();
10 }, Error, message);
11 }
12
13 {
14 let message = 'has default meta values';
15 let actual = template({ content: {body: '<h1> Hello World</h1>' }});
16 assert.ok(actual, message);
17 }
18
19 {
20 let message = 'returns string';
21 let actual = typeof template({ content: { body: '<h2>Hello World</h2>' }});
22 let expected = 'string';
23
24 assert.equal(actual, expected, message);
25 }
26
27 {
28 let message = 'returns HTML';
29 let actual = template({ content: { body: '<h3>Hello World</h3>' }}).match(/<!DOCTYPE\shtml>/ig);
30 let expected = ['<!DOCTYPE html>'];
31
32 assert.deepEqual(actual, expected, message);
33 }
34
35 {
36 let message = 'renders head element';
37 let actual = template({ content: { body: '<h3>Hello World</h3>' }}).match(/<(\/?)head>/ig);
38 let expected = ['<head>', '</head>'];
39
40 assert.deepEqual(actual, expected, message);
41 }
42
43 {
44 let message = 'renders meta values in head element';
45 let actual = template({
46 meta: {
47 author: 'Robert Frost'
48 },
49 content: {
50 body: '<h3>Hello World</h3>'
51 }
52 }).match(/<meta name="author" content="Robert Frost">/ig);
53 let expected = ['<meta name="author" content="Robert Frost">'];
54
55 assert.deepEqual(actual, expected, message);
56 }
57
58 {
59 let message = 'renders content body';
60 let actual = template({ content: { body: '<h3>Hello World</h3>' }}).match(/<(\/?)h3>/ig);
61 let expected = ['<h3>', '</h3>'];
62
63 assert.deepEqual(actual, expected, message);
64 }
65
66 {
67 let message = 'renders optional nav list';
68 let actual = template({
69 content: {
70 body: '<h3>Hello World</h3>',
71 nav: ['/', 'blah.html', 'cool.html']
72 }
73 }).match(/<(\/?)nav>/ig);
74
75 let expected = ['<nav>','</nav>'];
76
77 assert.deepEqual(actual, expected, message);
78 }
79
80 {
81 let message = 'renders optional nav list only if present';
82 let actual = template({
83 content: {
84 body: '<h3>Hello World</h3>'
85 }
86 }).match(/<nav>/ig);
87
88 assert.notOk(actual, message);
89 }
90
91 assert.end();
92});