test(plugins) coverage

This commit is contained in:
coderaiser 2019-02-20 16:31:30 +02:00
parent c3bbc05f8d
commit fa6de0ce67
2 changed files with 37 additions and 2 deletions

View file

@ -7,7 +7,7 @@ module.exports = currify((plugins, req, res, next) => {
if (req.url !== '/plugins.js')
return next();
res.setHeader('content-type', 'application/javascript; charset=UTF-8');
res.setHeader('content-type', 'application/javascript; charset=utf-8');
if (!plugins || !plugins.length)
return res.send('');

105
server/plugins.spec.js Normal file
View file

@ -0,0 +1,105 @@
'use strict';
const fs = require('fs');
const test = require('supertape');
const cloudcmd = require('./cloudcmd');
const config = {
auth: false,
};
const {request} = require('serve-once')(cloudcmd, {
config,
});
test('cloudcmd: plugins: empty', async (t) => {
const plugins = [];
const options = {
plugins,
};
const {body} = await request.get('/plugins.js', {
options,
});
t.equal(body, '', 'should content be empty');
t.end();
});
test('cloudcmd: plugins: empty: header', async (t) => {
const plugins = [];
const options = {
plugins,
};
const {headers} = await request.get('/plugins.js', {
options,
});
const expected = 'application/javascript; charset=utf-8';
t.equal(headers.get('content-type'), expected, 'should content be empty');
t.end();
});
test('cloudcmd: plugins: one', async (t) => {
const plugins = [
__filename,
];
const options = {
plugins,
};
const {body} = await request.get('/plugins.js', {
options,
});
const file = fs.readFileSync(__filename, 'utf8');
t.equal(body, file, 'should return file plugin content');
t.end();
});
test('cloudcmd: plugins: one', async (t) => {
const plugins = [
__filename,
];
const options = {
plugins,
};
const {headers} = await request.get('/plugins.js', {
options,
});
const expected = 'application/javascript; charset=utf-8';
t.equal(headers.get('content-type'), expected, 'should content be empty');
t.end();
});
test('cloudcmd: plugins: load error', async (t) => {
const noEntry = __filename + Math.random();
const plugins = [
__filename,
noEntry,
];
const msg = `ENOENT: no such file or directory, open '${noEntry}'`;
const options = {
plugins,
};
const {body} = await request.get('/plugins.js', {
options,
});
const file = fs.readFileSync(__filename, 'utf8') + msg;
t.equal(body, file, 'should return file plugin content');
t.end();
});