1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
'use strict';
var express = require('express');
var request = require('supertest');
var test = require('tape');
var fs = require('fs');
var minifyHTML = require('../minifier.js');
var expectedHTML = fs.readFileSync(__dirname + '/test.output.html', 'utf8');
var exhbs = require('express-handlebars');
var hbs = exhbs.create({
defaultLayout: 'test',
layoutsDir: __dirname
});
var nunjucks = require('nunjucks');
nunjucks.configure(__dirname, {
autoescape: true,
express: app
});
var app = express();
app.engine('handlebars', hbs.engine);
app.engine('nunjucks', nunjucks.render);
app.set('views', __dirname);
app.use(minifyHTML({
override: true,
htmlMinifier: {
removeComments: true,
collapseWhitespace: true,
collapseBooleanAttributes: true,
removeAttributeQuotes: true,
removeEmptyAttributes: true,
minifyJS: true
}
}));
app.get('/test', function (req, res, next) {
res.render('test', { hello : 'world' });
});
function checkMinified(t) {
request(app)
.get('/test')
.expect(200)
.end(function (err, res) {
t.equal(res.text, expectedHTML);
t.end();
});
};
test('Should minify EJS templates', function (t) {
app.set('view engine', 'ejs');
checkMinified(t);
});
test('Should minify Pug templates', function (t) {
app.set('view engine', 'pug');
checkMinified(t);
});
test('Should minify Handlebars templates', function (t) {
app.set('view engine', 'handlebars');
checkMinified(t);
});
test('Should minify Nunjucks templates', function (t) {
app.set('view engine', 'nunjucks');
checkMinified(t);
});
|