aboutsummaryrefslogtreecommitdiff
path: root/node_modules/express-minify-html/tests/index.js
blob: 26a20d7daa7df121aca9bb9f5899473109d51222 (plain)
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);
});