Ver código fonte

Add tests for verifyBody

production
Jack Foltz 5 anos atrás
pai
commit
bc499aa260
Acessado por: foltik <jack@foltz.io> ID da chave GPG: 303F88F996E95541
1 arquivos alterados com 59 adições e 0 exclusões
  1. +59
    -0
      test/middleware.js

+ 59
- 0
test/middleware.js Ver arquivo

@@ -0,0 +1,59 @@
const chai = require('chai');
chai.use(require('chai-http'));
const should = chai.should();
const describe = require('mocha').describe;

const verifyBody = require('../app/util/verifyBody').verifyBody;

describe('Body Verification', () => {
const testVerifyBody = async (body, expected, code, message) => {
try {
await verifyBody(body, expected);
} catch (err) {
if (code)
err.code.should.equal(code);
if (message)
err.message.should.equal(message);
}
};

it('must continue properly with valid prop', () => {
const expected = [{name: 'test'}];
return testVerifyBody({test: 'test'}, expected);
});

it('must continue with a missing but optional prop', () => {
const expected = [{name: 'test', optional: true}];
return testVerifyBody({}, expected);
});

it('must error with a missing prop', () => {
const expected = [{name: 'test'}];
return testVerifyBody({}, expected, 400, 'test not specified.');
});

it('must error with an invalid type', () => {
const expected = [{name: 'test', type: 'string'}];
return testVerifyBody({test: [1, 2, 3]}, expected, 400, 'test malformed.');
});

it('must error with an invalid instance', () => {
const expected = [{name: 'test', instance: Array}];
return testVerifyBody({test: 'test'}, expected, 400, 'test malformed.');
});

it('must error with a length higher than the max', () => {
const expected = [{name: 'test', maxLength: 5}];
return testVerifyBody({test: '123456'}, expected, 400, 'test too long.');
});

it('must error with a dirty prop that gets sanitized', () => {
const expected = [{name: 'test', sanitize: true}];
return testVerifyBody({test: 'test<svg/onload=alert("XSS")>'}, expected, 400, 'test contains invalid characters.');
});

it('must error with a restricted character', () => {
const expected = [{name: 'test', restrict: new RegExp("\\s")}];
return testVerifyBody({test: 'test test'}, expected, 400, 'test contains invalid characters.');
})
});

Carregando…
Cancelar
Salvar