You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

106 lines
2.4 KiB

var calcSizeMiddleware = require('../../../middleware/sizeCalculator.js');
module.exports.tests = {};
module.exports.tests.interface = function(test, common) {
test('interface', function(t) {
t.equal(typeof calcSizeMiddleware, 'function', 'valid function');
t.end();
});
};
module.exports.tests.valid = function(test, common) {
var req = { clean: {} };
function setupQuery(val) {
if (isNaN(val)) {
delete req.clean.size;
}
else {
req.clean.size = val;
}
delete req.clean.querySize;
}
test('size=0', function (t) {
setupQuery(0);
const calcSize = calcSizeMiddleware();
calcSize(req, {}, function () {
t.equal(req.clean.querySize, 20);
t.end();
});
});
test('size=1', function (t) {
setupQuery(1);
const calcSize = calcSizeMiddleware();
calcSize(req, {}, function () {
t.equal(req.clean.querySize, 20);
t.end();
});
});
test('size=10', function (t) {
setupQuery(10);
const calcSize = calcSizeMiddleware();
calcSize(req, {}, function () {
t.equal(req.clean.querySize, 20);
t.end();
});
});
test('size=20', function (t) {
setupQuery(20);
const calcSize = calcSizeMiddleware();
calcSize(req, {}, function () {
t.equal(req.clean.querySize, 40);
t.end();
});
});
test('no size', function (t) {
setupQuery();
const calcSize = calcSizeMiddleware();
calcSize(req, {}, function () {
t.equal(req.clean.hasOwnProperty('querySize'), false);
t.end();
});
});
test('no size, min query size 10', function (t) {
setupQuery();
const calcSize = calcSizeMiddleware(10);
calcSize(req, {}, function () {
t.equal(req.clean.hasOwnProperty('querySize'), false);
t.end();
});
});
test('size 5, min query size 10', function (t) {
setupQuery(5);
const calcSize = calcSizeMiddleware(10);
calcSize(req, {}, function () {
t.equal(req.clean.querySize, 10);
t.end();
});
});
test('size 3, min query size 2', function (t) {
setupQuery(3);
const calcSize = calcSizeMiddleware(2);
calcSize(req, {}, function () {
t.equal(req.clean.querySize, 6);
t.end();
});
});
};
module.exports.all = function (tape, common) {
function test(name, testFunction) {
return tape('sizeCalculator: ' + name, testFunction);
}
for( var testCase in module.exports.tests ){
module.exports.tests[testCase](test, common);
}
};