Skip to content

Commit

Permalink
feat: method validation
Browse files Browse the repository at this point in the history
  • Loading branch information
DevSide authored and DevSide committed Nov 17, 2019
1 parent 500129f commit ce6c826
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 32 deletions.
53 changes: 22 additions & 31 deletions src/__tests__/integrations.js
Expand Up @@ -104,67 +104,58 @@ describe('createServer.js', () => {
[{}, { body: '' }, undefined, false],
[{ unknown: 'unknown' }, { body: '' }, undefined, false],
[{ method: 'get' }, { body: '' }, undefined, false],
[{ path: '/pandas' }, { body: '' }, undefined, false],
[{ path: '/' }, { body: '' }, undefined, false],
[{ path: '/' }, { body: '' }, undefined, false],

[{ path: '/', method: 'unknown' }, { body: '' }, undefined, false],
[{ path: '/', method: 'head' }, { body: '' }, undefined, true],
[{ path: '/', method: 'HEAD' }, { body: '' }, undefined, true],
[{ path: '/', method: 'delete' }, { body: '' }, undefined, true],
[{ path: '/', method: 'put' }, { body: '' }, undefined, true],
[{ path: '/', method: 'post' }, { body: '' }, undefined, true],
[{ path: '/', method: 'get' }, { body: '' }, undefined, true],
[{ path: '/', method: 'options' }, { body: '' }, undefined, true],
[{ path: '/', method: 'patch' }, { body: '' }, undefined, true],

// request body
[
{ method: 'get', path: '/pandas', body: '' },
{ body: '' },
undefined,
true
],
[
{ method: 'get', path: '/pandas', body: {} },
{ body: '' },
undefined,
true
],
[
{ method: 'get', path: '/pandas', body: 1 },
{ body: '' },
undefined,
true
],
[
{ method: 'get', path: '/pandas', body: [] },
{ body: '' },
undefined,
true
],
[{ method: 'get', path: '/', body: '' }, { body: '' }, undefined, true],
[{ method: 'get', path: '/', body: {} }, { body: '' }, undefined, true],
[{ method: 'get', path: '/', body: 1 }, { body: '' }, undefined, true],
[{ method: 'get', path: '/', body: [] }, { body: '' }, undefined, true],

// request headers
[
{ method: 'get', path: '/pandas', headers: {} },
{ method: 'get', path: '/', headers: {} },
{ body: '' },
undefined,
true
],
[
{ method: 'get', path: '/pandas', headers: null },
{ method: 'get', path: '/', headers: null },
{ body: '' },
undefined,
false
],
[
{ method: 'get', path: '/pandas', headers: { a: 'b' } },
{ method: 'get', path: '/', headers: { a: 'b' } },
{ body: '' },
undefined,
true
],
[
{ method: 'get', path: '/pandas', headers: [] },
{ method: 'get', path: '/', headers: [] },
{ body: '' },
undefined,
true
],
[
{ method: 'get', path: '/pandas', headers: [1] },
{ method: 'get', path: '/', headers: [1] },
{ body: '' },
undefined,
false
],
[
{ method: 'get', path: '/pandas', headers: ['not-in-configuration'] },
{ method: 'get', path: '/', headers: ['not-in-configuration'] },
{ body: '' },
undefined,
false
Expand Down
4 changes: 3 additions & 1 deletion src/fixtures.js
Expand Up @@ -32,7 +32,9 @@ exports.validateFixture = function validateFixture (
request: Joi.object({
body: Joi.any(),
path: Joi.string().required(),
method: Joi.string().required(),
method: Joi.string()
.regex(/^(head|delete|put|post|get|options|patch)$/i)
.required(),
headers: schemaProperty,
cookies: schemaProperty,
query: schemaProperty,
Expand Down

0 comments on commit ce6c826

Please sign in to comment.