swagmock
Version:
Mock data generator for swagger api
145 lines (128 loc) • 4.89 kB
JavaScript
const Assert = require('assert');
const Swagmock = require('../lib');
const Path = require('path')
describe('Response Mock generator', () => {
let apiPath = Path.resolve(__dirname, 'fixture/petstore.json');
let swagmock = Swagmock(apiPath);
it('should generate response mock for path /store/order/{orderId}', (done) => {
swagmock.responses({
path: '/store/order/{orderId}',
operation: 'get',
response: '200'
}, (err, mock) => {
Assert.ok(!err, 'No error');
Assert.ok(mock, 'Generated mock');
let resp = mock.responses;
Assert.ok(resp, 'Generated response');
Assert.ok(Number.isInteger(resp.id), 'id is integer');
Assert.ok(Number.isInteger(resp.petId), 'petId is integer');
Assert.ok([ 1, 3, 5 ].indexOf(resp.quantity) != -1, 'quantity is integer enum');
Assert.ok(typeof resp.shipDate === 'string', 'shipDate is string');
Assert.ok(['placed','approved','delivered'].indexOf(resp.status) !== -1, 'status is enum');
Assert.ok(typeof resp.complete === 'boolean', 'complete is boolean');
done();
});
});
it('should generate response mock for path /pet/findByStatus', (done) => {
swagmock.responses({
path: '/pet/findByStatus',
operation: 'get',
response: '200'
}, (err, mock) => {
Assert.ok(!err, 'No error');
Assert.ok(mock, 'Generated mock');
let resp = mock.responses;
Assert.ok(resp, 'Generated response');
Assert.ok(Array.isArray(resp), 'response is Pet array');
let pet = resp[0];
Assert.ok(pet, 'Ok Pet response');
Assert.ok(Number.isInteger(pet.id), 'id is integer');
//TODO add asserts for pending props
done();
});
});
it('should generate response mock for path /pet/{petId}', (done) => {
swagmock.responses({
path: '/pet/{petId}',
operation: 'get',
response: '200'
}, (err, mock) => {
Assert.ok(!err, 'No error');
Assert.ok(mock, 'Generated mock');
let resp = mock.responses;
Assert.ok(resp, 'Generated response');
//TODO add asserts for pending props
done();
});
});
it('should generate response mock for path /pet/{petId}/uploadImage', (done) => {
swagmock.responses({
path: '/pet/{petId}/uploadImage',
operation: 'post',
response: '200'
}, (err, mock) => {
Assert.ok(!err, 'No error');
Assert.ok(mock, 'Generated mock');
let resp = mock.responses;
Assert.ok(resp, 'Generated response');
//TODO add asserts for pending props
done();
});
});
it('should generate response mock for path /store/inventory', (done) => {
swagmock.responses({
path: '/store/inventory',
operation: 'get',
response: '200'
}, (err, mock) => {
Assert.ok(!err, 'No error');
Assert.ok(mock, 'Generated mock');
let resp = mock.responses;
Assert.ok(resp, 'Generated response');
//TODO add asserts for pending props
done();
});
});
it('should generate response mock for path /store/order', (done) => {
swagmock.responses({
path: '/store/order',
operation: 'post',
response: '200'
}, (err, mock) => {
Assert.ok(!err, 'No error');
Assert.ok(mock, 'Generated mock');
let resp = mock.responses;
Assert.ok(resp, 'Generated response');
//TODO add asserts for pending props
done();
});
});
it('should generate response mock for path /user/login', (done) => {
swagmock.responses({
path: '/user/login',
operation: 'get',
response: '200'
}, (err, mock) => {
Assert.ok(!err, 'No error');
Assert.ok(mock, 'Generated mock');
let resp = mock.responses;
Assert.ok(resp, 'Generated response');
//TODO add asserts for pending props
done();
});
});
it('should generate response mock for path /pet', (done) => {
swagmock.responses({
path: '/pet',
operation: 'post',
response: '405'
}, (err, mock) => {
Assert.ok(!err, 'No error');
Assert.ok(mock, 'Generated mock');
let resp = mock.responses;
Assert.ok(!resp, 'No response');
//TODO add asserts for pending props
done();
});
});
});