Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
'use strict';
// mocha defines to avoid JSHint breakage
/* global it, before */
const parallel = require('mocha.parallel');
const assert = require('../utils/assert.js');
const Server = require('../utils/server.js');
const preq = require('preq');
const Ajv = require('ajv');
const OpenAPISchemaValidator = require('openapi-schema-validator').default;
const validator = new OpenAPISchemaValidator({ version: 3 });
parallel('Responses should conform to the provided JSON schema of the response', () => {
const ajv = new Ajv({});
const server = new Server();
function getToday() {
function zeroPad(num) {
if (num < 10) {
return `0${num}`;
}
return `${num}`;
}
const now = new Date();
return `${now.getUTCFullYear()}/${zeroPad(now.getUTCMonth() + 1)}/${zeroPad(now.getUTCDate())}`;
}
before(() => server.start()
).collect(peopleCollection);
(
await testApi.post('/notes')
.withBody({
author: 'Cathy',
date: '2019-06-11T09:30:00.000Z',
note: 'This is a sample note.'
})
.send()
).collect(notesCollection);
testApi.finish();
const openApiDoc = doc.generate();
const validator = new OpenAPIValidator({
version: '3.0',
});
expect(validator.validate(openApiDoc).errors).toEqual([]);
});
});
this.loggingPrefix
}args.paths and args.operations must not both be empty`
);
}
this.enableObjectCoercion = !!args.enableObjectCoercion;
this.originalApiDoc = handleYaml(handleFilePath(args.apiDoc));
this.apiDoc = copy(this.originalApiDoc);
this.basePaths = this.apiDoc.openapi
? getBasePathsFromServers(this.apiDoc.servers)
: [
new BasePath({ url: (this.apiDoc.basePath || '').replace(/\/$/, '') })
];
this.validateApiDoc =
'validateApiDoc' in args ? !!args.validateApiDoc : true;
this.validator = new OpenAPISchemaValidator({
version:
(this.apiDoc as OpenAPIV3.Document).openapi ||
(this.apiDoc as OpenAPIV2.Document).swagger,
extensions: this.apiDoc[`x-${this.name}-schema-extension`]
});
this.customFormats = args.customFormats;
this.dependencies = args.dependencies;
this.errorTransformer = args.errorTransformer;
this.externalSchemas = args.externalSchemas;
this.operations = args.operations;
this.paths = args.paths;
this.pathsIgnore = args.pathsIgnore;
this.pathSecurity = Array.isArray(args.pathSecurity)
? args.pathSecurity
: [];
this.routesGlob = args.routesGlob;