swagger-express-typescript
Version:
Generate and serve swagger.json
1,057 lines • 56.3 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var swagger_service_1 = require("./swagger.service");
var chai = require("chai");
var swagger_definition_constant_1 = require("./swagger-definition.constant");
var expect = chai.expect;
describe('SwaggerService', function () {
beforeEach(function () {
swagger_service_1.SwaggerService.getInstance().resetData();
console.log('reset');
});
describe('setBasePath', function () {
it('expect basePath default "/"', function () {
expect(swagger_service_1.SwaggerService.getInstance().getData().basePath).to.equal('/');
});
it('expect basePath exist when it setted', function () {
var basePath = '/basepath';
swagger_service_1.SwaggerService.getInstance().setBasePath(basePath);
expect(swagger_service_1.SwaggerService.getInstance().getData().basePath).to.equal(basePath);
});
});
describe('setOpenapi', function () {
it('expect default openapi when it not setted', function () {
expect(swagger_service_1.SwaggerService.getInstance().getData().openapi).to.not.exist;
});
it('expect openapi exist when it setted', function () {
var openapi = 'openapi';
swagger_service_1.SwaggerService.getInstance().setOpenapi(openapi);
expect(swagger_service_1.SwaggerService.getInstance().getData().openapi).to.equal(openapi);
});
});
describe('setInfo', function () {
it('expect default info', function () {
expect(swagger_service_1.SwaggerService.getInstance().getData().info.title).to.equal('');
expect(swagger_service_1.SwaggerService.getInstance().getData().info.version).to.equal('');
});
it('expect info when it defined', function () {
var info = {
title: 'Title',
version: '1.0.1',
};
swagger_service_1.SwaggerService.getInstance().setInfo(info);
expect(swagger_service_1.SwaggerService.getInstance().getData().info.title).to.equal(info.title);
expect(swagger_service_1.SwaggerService.getInstance().getData().info.version).to.equal(info.version);
});
});
describe('setSchemes', function () {
it('expect default schemes when it not defined', function () {
expect(swagger_service_1.SwaggerService.getInstance().getData().schemes)
.to.have.lengthOf(1)
.to.have.members([swagger_definition_constant_1.SwaggerDefinitionConstant.Scheme.HTTP]);
});
it('expect schemes when it defined', function () {
var schemes = [
swagger_definition_constant_1.SwaggerDefinitionConstant.Scheme.HTTP,
swagger_definition_constant_1.SwaggerDefinitionConstant.Scheme.HTTPS,
];
swagger_service_1.SwaggerService.getInstance().setSchemes(schemes);
expect(swagger_service_1.SwaggerService.getInstance().getData().schemes).to.deep.equal(schemes);
});
});
describe('setExternalDocs', function () {
it('expect default externalDocs when it not defined', function () {
expect(swagger_service_1.SwaggerService.getInstance().getData().externalDocs).to.not
.exist;
});
it('expect externalDocs when it defined', function () {
var externalDocs = {
url: 'Mon url',
};
swagger_service_1.SwaggerService.getInstance().setExternalDocs(externalDocs);
expect(swagger_service_1.SwaggerService.getInstance().getData().externalDocs.url).to.equal(externalDocs.url);
});
});
describe('setProduces', function () {
it('expect default produces when it not defined', function () {
expect(swagger_service_1.SwaggerService.getInstance().getData().produces)
.to.have.lengthOf(1)
.to.have.members([swagger_definition_constant_1.SwaggerDefinitionConstant.Produce.JSON]);
});
it('expect produces when it defined', function () {
var produces = [
swagger_definition_constant_1.SwaggerDefinitionConstant.Produce.JSON,
swagger_definition_constant_1.SwaggerDefinitionConstant.Produce.XML,
];
swagger_service_1.SwaggerService.getInstance().setProduces(produces);
expect(swagger_service_1.SwaggerService.getInstance().getData().produces).to.deep.equal(produces);
});
});
describe('setConsumes', function () {
it('expect default consumes when it not defined', function () {
expect(swagger_service_1.SwaggerService.getInstance().getData().consumes)
.to.have.lengthOf(1)
.to.have.members([swagger_definition_constant_1.SwaggerDefinitionConstant.Consume.JSON]);
});
it('expect consumes when it defined', function () {
var consumes = [
swagger_definition_constant_1.SwaggerDefinitionConstant.Consume.JSON,
swagger_definition_constant_1.SwaggerDefinitionConstant.Consume.XML,
];
swagger_service_1.SwaggerService.getInstance().setConsumes(consumes);
expect(swagger_service_1.SwaggerService.getInstance().getData().consumes).to.deep.equal(consumes);
});
});
describe('setHost', function () {
it('expect host not exist when it not defined', function () {
expect(swagger_service_1.SwaggerService.getInstance().getData().host).to.be.not.exist;
});
it('expect host when it defined', function () {
var host = 'host';
swagger_service_1.SwaggerService.getInstance().setHost(host);
expect(swagger_service_1.SwaggerService.getInstance().getData().host).to.equal(host);
});
});
describe('setDefinitions', function () {
it('expect default definitions when they not defined', function () {
expect(swagger_service_1.SwaggerService.getInstance().getData().definitions).to.deep.equal({});
});
it('expect definitions when they defined', function () {
var models = {
Version: {
properties: {
id: {
description: 'Id of Version',
type: swagger_definition_constant_1.SwaggerDefinitionConstant.Model.Property.Type
.STRING,
example: ['123456789'],
},
},
},
};
swagger_service_1.SwaggerService.getInstance().setDefinitions(models);
expect(swagger_service_1.SwaggerService.getInstance().getData().definitions).to.deep.equal({
Version: {
properties: {
id: {
description: 'Id of Version',
example: ['123456789'],
type: 'string',
enum: undefined,
format: undefined,
},
},
required: [],
type: 'object',
},
});
});
});
describe('addPath', function () {
it('expect new path', function () {
var args = {
path: '/versions',
name: 'version',
};
var target = {
name: 'MyName',
};
swagger_service_1.SwaggerService.getInstance().addPath(args, target);
swagger_service_1.SwaggerService.getInstance().buildSwagger();
expect(swagger_service_1.SwaggerService.getInstance().getData().paths).to.deep.equal({
'/versions': {},
});
});
});
describe('addOperationGet', function () {
var pathArgs = {
path: '/versions',
name: 'Version',
};
var pathTarget = {
name: 'VersionsController',
};
var operationGetTarget = {
constructor: {
name: 'VersionsController',
},
};
var propertyKey;
var expectedPaths;
beforeEach(function () {
swagger_service_1.SwaggerService.getInstance().addPath(pathArgs, pathTarget);
});
describe('expect array', function () {
beforeEach(function () {
propertyKey = 'getVersions';
expectedPaths = {
'/versions': {
get: {
consumes: [swagger_definition_constant_1.SwaggerDefinitionConstant.Consume.JSON],
operationId: 'getVersions',
produces: [swagger_definition_constant_1.SwaggerDefinitionConstant.Produce.JSON],
responses: {
200: {
description: 'Success',
schema: {
items: {
$ref: '#/definitions/Version',
},
type: swagger_definition_constant_1.SwaggerDefinitionConstant.Response
.Type.ARRAY,
},
},
},
tags: ['Version'],
},
},
};
});
it('expect default', function () {
var operationGetArgs = {
responses: {
200: {
model: 'Version',
type: swagger_definition_constant_1.SwaggerDefinitionConstant.Response.Type.ARRAY,
},
},
};
swagger_service_1.SwaggerService.getInstance().addOperationGet(operationGetArgs, operationGetTarget, propertyKey);
swagger_service_1.SwaggerService.getInstance().buildSwagger();
expect(swagger_service_1.SwaggerService.getInstance().getData().paths).to.deep.equal(expectedPaths);
});
it('expect description', function () {
var operationGetArgs = {
description: 'get versions',
responses: {
200: {
model: 'Version',
type: swagger_definition_constant_1.SwaggerDefinitionConstant.Response.Type.ARRAY,
},
},
};
swagger_service_1.SwaggerService.getInstance().addOperationGet(operationGetArgs, operationGetTarget, propertyKey);
swagger_service_1.SwaggerService.getInstance().buildSwagger();
expectedPaths['/versions'].get.description =
operationGetArgs.description;
expect(swagger_service_1.SwaggerService.getInstance().getData().paths).to.deep.equal(expectedPaths);
});
it('expect summary', function () {
var operationGetArgs = {
summary: 'get versions',
responses: {
200: {
model: 'Version',
type: swagger_definition_constant_1.SwaggerDefinitionConstant.Response.Type.ARRAY,
},
},
};
swagger_service_1.SwaggerService.getInstance().addOperationGet(operationGetArgs, operationGetTarget, propertyKey);
swagger_service_1.SwaggerService.getInstance().buildSwagger();
expectedPaths['/versions'].get.summary =
operationGetArgs.summary;
expect(swagger_service_1.SwaggerService.getInstance().getData().paths).to.deep.equal(expectedPaths);
});
it('expect consumes', function () {
var operationGetArgs = {
consumes: [
swagger_definition_constant_1.SwaggerDefinitionConstant.Consume.JSON,
swagger_definition_constant_1.SwaggerDefinitionConstant.Consume.XML,
],
responses: {
200: {
model: 'Version',
type: swagger_definition_constant_1.SwaggerDefinitionConstant.Response.Type.ARRAY,
},
},
};
swagger_service_1.SwaggerService.getInstance().addOperationGet(operationGetArgs, operationGetTarget, propertyKey);
swagger_service_1.SwaggerService.getInstance().buildSwagger();
expectedPaths['/versions'].get.consumes =
operationGetArgs.consumes;
expect(swagger_service_1.SwaggerService.getInstance().getData().paths).to.deep.equal(expectedPaths);
});
it('expect produces', function () {
var operationGetArgs = {
produces: [
swagger_definition_constant_1.SwaggerDefinitionConstant.Produce.JSON,
swagger_definition_constant_1.SwaggerDefinitionConstant.Produce.XML,
],
responses: {
200: {
model: 'Version',
type: swagger_definition_constant_1.SwaggerDefinitionConstant.Response.Type.ARRAY,
},
},
};
swagger_service_1.SwaggerService.getInstance().addOperationGet(operationGetArgs, operationGetTarget, propertyKey);
swagger_service_1.SwaggerService.getInstance().buildSwagger();
expectedPaths['/versions'].get.produces =
operationGetArgs.produces;
expect(swagger_service_1.SwaggerService.getInstance().getData().paths).to.deep.equal(expectedPaths);
});
it('expect responses', function () {
var operationGetArgs = {
responses: {
200: {
description: 'return version object',
type: swagger_definition_constant_1.SwaggerDefinitionConstant.Response.Type.ARRAY,
model: 'Version',
},
},
};
swagger_service_1.SwaggerService.getInstance().addOperationGet(operationGetArgs, operationGetTarget, propertyKey);
swagger_service_1.SwaggerService.getInstance().buildSwagger();
expectedPaths['/versions'].get.responses[200].description =
operationGetArgs.responses[200].description;
expect(swagger_service_1.SwaggerService.getInstance().getData().paths).to.deep.equal(expectedPaths);
});
});
describe('expect object', function () {
beforeEach(function () {
propertyKey = 'getVersion';
expectedPaths = {
'/versions/{id}': {
get: {
consumes: [swagger_definition_constant_1.SwaggerDefinitionConstant.Consume.JSON],
operationId: 'getVersion',
produces: [swagger_definition_constant_1.SwaggerDefinitionConstant.Produce.JSON],
responses: {
200: {
description: 'Success',
schema: {
$ref: '#/definitions/Version',
},
},
},
tags: ['Version'],
},
},
};
});
it('expect default', function () {
var operationGetArgs = {
path: '/{id}',
responses: {
200: { model: 'Version' },
},
};
swagger_service_1.SwaggerService.getInstance().addOperationGet(operationGetArgs, operationGetTarget, propertyKey);
swagger_service_1.SwaggerService.getInstance().buildSwagger();
expect(swagger_service_1.SwaggerService.getInstance().getData().paths).to.deep.equal(expectedPaths);
});
it('expect description', function () {
var operationGetArgs = {
path: '/{id}',
description: 'get version',
responses: {
200: { model: 'Version' },
},
};
swagger_service_1.SwaggerService.getInstance().addOperationGet(operationGetArgs, operationGetTarget, propertyKey);
swagger_service_1.SwaggerService.getInstance().buildSwagger();
expectedPaths['/versions/{id}'].get.description =
operationGetArgs.description;
expect(swagger_service_1.SwaggerService.getInstance().getData().paths).to.deep.equal(expectedPaths);
});
it('expect summary', function () {
var operationGetArgs = {
path: '/{id}',
summary: 'get version',
responses: {
200: { model: 'Version' },
},
};
swagger_service_1.SwaggerService.getInstance().addOperationGet(operationGetArgs, operationGetTarget, propertyKey);
swagger_service_1.SwaggerService.getInstance().buildSwagger();
expectedPaths['/versions/{id}'].get.summary =
operationGetArgs.summary;
expect(swagger_service_1.SwaggerService.getInstance().getData().paths).to.deep.equal(expectedPaths);
});
it('expect consumes', function () {
var operationGetArgs = {
path: '/{id}',
consumes: [
swagger_definition_constant_1.SwaggerDefinitionConstant.Consume.JSON,
swagger_definition_constant_1.SwaggerDefinitionConstant.Consume.XML,
],
responses: {
200: { model: 'Version' },
},
};
swagger_service_1.SwaggerService.getInstance().addOperationGet(operationGetArgs, operationGetTarget, propertyKey);
swagger_service_1.SwaggerService.getInstance().buildSwagger();
expectedPaths['/versions/{id}'].get.consumes =
operationGetArgs.consumes;
expect(swagger_service_1.SwaggerService.getInstance().getData().paths).to.deep.equal(expectedPaths);
});
it('expect produces', function () {
var operationGetArgs = {
path: '/{id}',
produces: [
swagger_definition_constant_1.SwaggerDefinitionConstant.Produce.JSON,
swagger_definition_constant_1.SwaggerDefinitionConstant.Produce.XML,
],
responses: {
200: { model: 'Version' },
},
};
swagger_service_1.SwaggerService.getInstance().addOperationGet(operationGetArgs, operationGetTarget, propertyKey);
swagger_service_1.SwaggerService.getInstance().buildSwagger();
expectedPaths['/versions/{id}'].get.produces =
operationGetArgs.produces;
expect(swagger_service_1.SwaggerService.getInstance().getData().paths).to.deep.equal(expectedPaths);
});
it('expect responses', function () {
var operationGetArgs = {
path: '/{id}',
responses: {
200: {
description: 'return version object',
model: 'Version',
},
},
};
swagger_service_1.SwaggerService.getInstance().addOperationGet(operationGetArgs, operationGetTarget, propertyKey);
swagger_service_1.SwaggerService.getInstance().buildSwagger();
expectedPaths['/versions/{id}'].get.responses[200].description =
operationGetArgs.responses[200].description;
expect(swagger_service_1.SwaggerService.getInstance().getData().paths).to.deep.equal(expectedPaths);
});
});
});
describe('addOperationPost', function () {
var argsPath = {
path: '/versions',
name: 'Version',
};
var targetPath = {
name: 'VersionController',
};
var targetOperationPost = {
constructor: {
name: 'VersionController',
},
};
var propertyKey = 'postVersion';
var expectedPaths;
beforeEach(function () {
swagger_service_1.SwaggerService.getInstance().addPath(argsPath, targetPath);
expectedPaths = {
'/versions': {
post: {
parameters: [
{
allowEmptyValue: undefined,
default: undefined,
deprecated: undefined,
description: 'New versions',
format: undefined,
maximum: undefined,
minimum: undefined,
in: swagger_definition_constant_1.SwaggerDefinitionConstant.Parameter.In.BODY,
name: swagger_definition_constant_1.SwaggerDefinitionConstant.Parameter.In.BODY,
required: true,
schema: {
$ref: '#/definitions/Version',
},
type: undefined,
},
],
consumes: [swagger_definition_constant_1.SwaggerDefinitionConstant.Consume.JSON],
operationId: propertyKey,
produces: [swagger_definition_constant_1.SwaggerDefinitionConstant.Produce.JSON],
responses: {
200: {
description: 'Success',
schema: {
items: {
$ref: '#/definitions/Version',
},
type: swagger_definition_constant_1.SwaggerDefinitionConstant.Response.Type
.ARRAY,
},
},
},
tags: ['Version'],
},
},
};
});
it('expect default', function () {
var argsOperationPost = {
parameters: {
body: {
description: 'New versions',
required: true,
model: 'Version',
},
},
responses: {
200: {
model: 'Version',
type: swagger_definition_constant_1.SwaggerDefinitionConstant.Response.Type.ARRAY,
},
},
};
swagger_service_1.SwaggerService.getInstance().addOperationPost(argsOperationPost, targetOperationPost, propertyKey);
swagger_service_1.SwaggerService.getInstance().buildSwagger();
expect(swagger_service_1.SwaggerService.getInstance().getData().paths).to.deep.equal(expectedPaths);
});
it('expect description', function () {
var argsOperationPost = {
description: 'post version',
parameters: {
body: {
description: 'New versions',
required: true,
model: 'Version',
},
},
responses: {
200: {
model: 'Version',
type: swagger_definition_constant_1.SwaggerDefinitionConstant.Response.Type.ARRAY,
},
},
};
swagger_service_1.SwaggerService.getInstance().addOperationPost(argsOperationPost, targetOperationPost, propertyKey);
swagger_service_1.SwaggerService.getInstance().buildSwagger();
expectedPaths['/versions'].post.description =
argsOperationPost.description;
expect(swagger_service_1.SwaggerService.getInstance().getData().paths).to.deep.equal(expectedPaths);
});
it('expect summary', function () {
var argsOperationPost = {
summary: 'post version',
parameters: {
body: {
description: 'New versions',
required: true,
model: 'Version',
},
},
responses: {
200: {
model: 'Version',
type: swagger_definition_constant_1.SwaggerDefinitionConstant.Response.Type.ARRAY,
},
},
};
swagger_service_1.SwaggerService.getInstance().addOperationPost(argsOperationPost, targetOperationPost, propertyKey);
swagger_service_1.SwaggerService.getInstance().buildSwagger();
expectedPaths['/versions'].post.summary = argsOperationPost.summary;
expect(swagger_service_1.SwaggerService.getInstance().getData().paths).to.deep.equal(expectedPaths);
});
it('expect consumes', function () {
var argsOperationPost = {
consumes: [
swagger_definition_constant_1.SwaggerDefinitionConstant.Consume.JSON,
swagger_definition_constant_1.SwaggerDefinitionConstant.Consume.XML,
],
parameters: {
body: {
description: 'New versions',
required: true,
model: 'Version',
},
},
responses: {
200: {
type: swagger_definition_constant_1.SwaggerDefinitionConstant.Response.Type.ARRAY,
model: 'Version',
},
},
};
swagger_service_1.SwaggerService.getInstance().addOperationPost(argsOperationPost, targetOperationPost, propertyKey);
swagger_service_1.SwaggerService.getInstance().buildSwagger();
expectedPaths['/versions'].post.consumes =
argsOperationPost.consumes;
expect(swagger_service_1.SwaggerService.getInstance().getData().paths).to.deep.equal(expectedPaths);
});
it('expect produces', function () {
var argsOperationPost = {
produces: [
swagger_definition_constant_1.SwaggerDefinitionConstant.Consume.JSON,
swagger_definition_constant_1.SwaggerDefinitionConstant.Consume.XML,
],
parameters: {
body: {
description: 'New versions',
required: true,
model: 'Version',
},
},
responses: {
200: {
type: swagger_definition_constant_1.SwaggerDefinitionConstant.Response.Type.ARRAY,
model: 'Version',
},
},
};
swagger_service_1.SwaggerService.getInstance().addOperationPost(argsOperationPost, targetOperationPost, propertyKey);
swagger_service_1.SwaggerService.getInstance().buildSwagger();
expectedPaths['/versions'].post.produces =
argsOperationPost.produces;
expect(swagger_service_1.SwaggerService.getInstance().getData().paths).to.deep.equal(expectedPaths);
});
});
describe('addOperationPut', function () {
var argsPath = {
path: '/versions',
name: 'Version',
};
var targetPath = {
name: 'VersionController',
};
var targetOperationPut = {
constructor: {
name: 'VersionController',
},
};
var propertyKey = 'putVersion';
var expectedPaths;
beforeEach(function () {
swagger_service_1.SwaggerService.getInstance().addPath(argsPath, targetPath);
expectedPaths = {
'/versions/{id}': {
put: {
parameters: [
{
allowEmptyValue: undefined,
default: undefined,
deprecated: undefined,
in: 'path',
format: undefined,
description: 'Id of version',
maximum: undefined,
minimum: undefined,
name: 'id',
required: true,
type: swagger_definition_constant_1.SwaggerDefinitionConstant.Parameter.Type
.STRING,
},
{
allowEmptyValue: undefined,
default: undefined,
deprecated: undefined,
description: 'New versions',
format: undefined,
in: swagger_definition_constant_1.SwaggerDefinitionConstant.Parameter.In.BODY,
maximum: undefined,
minimum: undefined,
name: swagger_definition_constant_1.SwaggerDefinitionConstant.Parameter.In.BODY,
required: true,
schema: {
$ref: '#/definitions/Version',
},
type: undefined,
},
],
consumes: [swagger_definition_constant_1.SwaggerDefinitionConstant.Consume.JSON],
operationId: propertyKey,
produces: [swagger_definition_constant_1.SwaggerDefinitionConstant.Produce.JSON],
responses: {
200: {
description: 'Success',
schema: {
$ref: '#/definitions/Version',
},
},
},
tags: ['Version'],
},
},
};
});
it('expect default', function () {
var argsOperationPut = {
path: '/{id}',
parameters: {
path: {
id: {
description: 'Id of version',
type: swagger_definition_constant_1.SwaggerDefinitionConstant.Parameter.Type.STRING,
required: true,
},
},
body: {
description: 'New versions',
required: true,
model: 'Version',
},
},
responses: {
200: { model: 'Version' },
},
};
swagger_service_1.SwaggerService.getInstance().addOperationPut(argsOperationPut, targetOperationPut, propertyKey);
swagger_service_1.SwaggerService.getInstance().buildSwagger();
expect(swagger_service_1.SwaggerService.getInstance().getData().paths).to.deep.equal(expectedPaths);
});
it('expect description', function () {
var argsOperationPut = {
path: '/{id}',
description: 'post version',
parameters: {
path: {
id: {
description: 'Id of version',
type: swagger_definition_constant_1.SwaggerDefinitionConstant.Parameter.Type.STRING,
required: true,
},
},
body: {
description: 'New versions',
required: true,
model: 'Version',
},
},
responses: {
200: { model: 'Version' },
},
};
swagger_service_1.SwaggerService.getInstance().addOperationPut(argsOperationPut, targetOperationPut, propertyKey);
swagger_service_1.SwaggerService.getInstance().buildSwagger();
expectedPaths['/versions/{id}'].put.description =
argsOperationPut.description;
expect(swagger_service_1.SwaggerService.getInstance().getData().paths).to.deep.equal(expectedPaths);
});
it('expect summary', function () {
var argsOperationPut = {
path: '/{id}',
summary: 'post version',
parameters: {
path: {
id: {
description: 'Id of version',
type: swagger_definition_constant_1.SwaggerDefinitionConstant.Parameter.Type.STRING,
required: true,
},
},
body: {
description: 'New versions',
required: true,
model: 'Version',
},
},
responses: {
200: { model: 'Version' },
},
};
swagger_service_1.SwaggerService.getInstance().addOperationPut(argsOperationPut, targetOperationPut, propertyKey);
swagger_service_1.SwaggerService.getInstance().buildSwagger();
expectedPaths['/versions/{id}'].put.summary =
argsOperationPut.summary;
expect(swagger_service_1.SwaggerService.getInstance().getData().paths).to.deep.equal(expectedPaths);
});
it('expect consumes', function () {
var argsOperationPut = {
path: '/{id}',
consumes: [
swagger_definition_constant_1.SwaggerDefinitionConstant.Consume.JSON,
swagger_definition_constant_1.SwaggerDefinitionConstant.Consume.XML,
],
parameters: {
path: {
id: {
description: 'Id of version',
type: swagger_definition_constant_1.SwaggerDefinitionConstant.Parameter.Type.STRING,
required: true,
},
},
body: {
description: 'New versions',
required: true,
model: 'Version',
},
},
responses: {
200: { model: 'Version' },
},
};
swagger_service_1.SwaggerService.getInstance().addOperationPut(argsOperationPut, targetOperationPut, propertyKey);
swagger_service_1.SwaggerService.getInstance().buildSwagger();
expectedPaths['/versions/{id}'].put.consumes =
argsOperationPut.consumes;
expect(swagger_service_1.SwaggerService.getInstance().getData().paths).to.deep.equal(expectedPaths);
});
it('expect produces', function () {
var argsOperationPut = {
path: '/{id}',
produces: [
swagger_definition_constant_1.SwaggerDefinitionConstant.Consume.JSON,
swagger_definition_constant_1.SwaggerDefinitionConstant.Consume.XML,
],
parameters: {
path: {
id: {
description: 'Id of version',
type: swagger_definition_constant_1.SwaggerDefinitionConstant.Parameter.Type.STRING,
required: true,
},
},
body: {
description: 'New versions',
required: true,
model: 'Version',
},
},
responses: {
200: { model: 'Version' },
},
};
swagger_service_1.SwaggerService.getInstance().addOperationPut(argsOperationPut, targetOperationPut, propertyKey);
swagger_service_1.SwaggerService.getInstance().buildSwagger();
expectedPaths['/versions/{id}'].put.produces =
argsOperationPut.produces;
expect(swagger_service_1.SwaggerService.getInstance().getData().paths).to.deep.equal(expectedPaths);
});
});
describe('addOperationPatch', function () {
var argsPath = {
path: '/versions',
name: 'Version',
};
var targetPath = {
name: 'VersionController',
};
var targetOperationPatch = {
constructor: {
name: 'VersionController',
},
};
var propertyKey = 'patchVersionDescription';
var expectedPaths;
beforeEach(function () {
swagger_service_1.SwaggerService.getInstance().addPath(argsPath, targetPath);
expectedPaths = {
'/versions/{id}/description': {
patch: {
parameters: [
{
allowEmptyValue: undefined,
default: undefined,
deprecated: undefined,
in: 'path',
maximum: undefined,
minimum: undefined,
description: 'Id of version',
format: undefined,
name: 'id',
required: true,
type: swagger_definition_constant_1.SwaggerDefinitionConstant.Parameter.Type
.STRING,
},
{
allowEmptyValue: undefined,
default: undefined,
deprecated: undefined,
description: 'New versions',
format: undefined,
in: swagger_definition_constant_1.SwaggerDefinitionConstant.Parameter.In.BODY,
maximum: undefined,
minimum: undefined,
name: swagger_definition_constant_1.SwaggerDefinitionConstant.Parameter.In.BODY,
required: true,
schema: {
$ref: '#/definitions/Version',
},
type: undefined,
},
],
consumes: [swagger_definition_constant_1.SwaggerDefinitionConstant.Consume.JSON],
operationId: propertyKey,
produces: [swagger_definition_constant_1.SwaggerDefinitionConstant.Produce.JSON],
responses: {
200: {
description: 'Success',
schema: {
$ref: '#/definitions/Version',
},
},
},
tags: ['Version'],
},
},
};
});
it('expect default', function () {
var argsOperationPatch = {
path: '/{id}/description',
parameters: {
path: {
id: {
description: 'Id of version',
type: swagger_definition_constant_1.SwaggerDefinitionConstant.Parameter.Type.STRING,
required: true,
},
},
body: {
description: 'New versions',
required: true,
model: 'Version',
},
},
responses: {
200: { model: 'Version' },
},
};
swagger_service_1.SwaggerService.getInstance().addOperationPatch(argsOperationPatch, targetOperationPatch, propertyKey);
swagger_service_1.SwaggerService.getInstance().buildSwagger();
expect(swagger_service_1.SwaggerService.getInstance().getData().paths).to.deep.equal(expectedPaths);
});
it('expect description', function () {
var argsOperationPatch = {
path: '/{id}/description',
description: 'patch version description',
parameters: {
path: {
id: {
description: 'Id of version',
type: swagger_definition_constant_1.SwaggerDefinitionConstant.Parameter.Type.STRING,
required: true,
},
},
body: {
description: 'New versions',
required: true,
model: 'Version',
},
},
responses: {
200: { model: 'Version' },
},
};
swagger_service_1.SwaggerService.getInstance().addOperationPatch(argsOperationPatch, targetOperationPatch, propertyKey);
swagger_service_1.SwaggerService.getInstance().buildSwagger();
expectedPaths['/versions/{id}/description'].patch.description =
argsOperationPatch.description;
expect(swagger_service_1.SwaggerService.getInstance().getData().paths).to.deep.equal(expectedPaths);
});
it('expect summary', function () {
var argsOperationPatch = {
path: '/{id}/description',
summary: 'patch version description',
parameters: {
path: {
id: {
description: 'Id of version',
type: swagger_definition_constant_1.SwaggerDefinitionConstant.Parameter.Type.STRING,
required: true,
},
},
body: {
description: 'New versions',
required: true,
model: 'Version',
},
},
responses: {
200: { model: 'Version' },
},
};
swagger_service_1.SwaggerService.getInstance().addOperationPatch(argsOperationPatch, targetOperationPatch, propertyKey);
swagger_service_1.SwaggerService.getInstance().buildSwagger();
expectedPaths['/versions/{id}/description'].patch.summary =
argsOperationPatch.summary;
expect(swagger_service_1.SwaggerService.getInstance().getData().paths).to.deep.equal(expectedPaths);
});
it('expect consumes', function () {
var argsOperationPatch = {
path: '/{id}/description',
consumes: [
swagger_definition_constant_1.SwaggerDefinitionConstant.Consume.JSON,
swagger_definition_constant_1.SwaggerDefinitionConstant.Consume.XML,
],
parameters: {
path: {
id: {
description: 'Id of version',
type: swagger_definition_constant_1.SwaggerDefinitionConstant.Parameter.Type.STRING,
required: true,
},
},
body: {
description: 'New versions',
required: true,
model: 'Version',
},
},
responses: {
200: { model: 'Version' },
},
};
swagger_service_1.SwaggerService.getInstance().addOperationPatch(argsOperationPatch, targetOperationPatch, propertyKey);
swagger_service_1.SwaggerService.getInstance().buildSwagger();
expectedPaths['/versions/{id}/description'].patch.consumes =
argsOperationPatch.consumes;
expect(swagger_service_1.SwaggerService.getInstance().getData().paths).to.deep.equal(expectedPaths);
});
it('expect produces', function () {
var argsOperationPut = {
path: '/{id}/description',
produces: [
swagger_definition_constant_1.SwaggerDefinitionConstant.Consume.JSON,
swagger_definition_constant_1.SwaggerDefinitionConstant.Consume.XML,
],
parameters: {
path: {
id: {
description: 'Id of version',
type: swagger_definition_constant_1.SwaggerDefinitionConstant.Parameter.Type.STRING,
required: true,
},
},
body: {
description: 'New versions',
required: true,
model: 'Version',
},
},
responses: {
200: { model: 'Version' },
},
};
swagger_service_1.SwaggerService.getInstance().addOperationPatch(argsOperationPut, targetOperationPatch, propertyKey);
swagger_service_1.SwaggerService.getInstance().buildSwagger();
expectedPaths['/versions/{id}/description'].patch.produces =
argsOperationPut.produces;
expect(swagger_service_1.SwaggerService.getInstance().getData().paths).to.deep.equal(expectedPaths);
});
});
describe('addOperationDelete', function () {
var argsPath = {
path: '/versions',
name: 'Version',
};
var targetPath = {
name: 'VersionController',
};
var targetOperationDelete = {
constructor: {
name: 'VersionController',
},
};
var propertyKey = 'deleteVersion';
var expectedPaths;
beforeEach(function () {
swagger_service_1.SwaggerService.getInstance().addPath(argsPath, targetPath);
expectedPaths = {
'/versions/{id}': {
delete: {
consumes: [swagger_definition_constant_1.SwaggerDefinitionConstant.Consume.JSON],
operationId: propertyKey,
parameters: [
{
allowEmptyValue: undefined,
default: undefined,
deprecated: undefined,
in: 'path',
format: undefined,
description: 'Id of version',
maximum: undefined,
minimum: undefined,
name: 'id',
required: true,
type: swagger_definition_constant_1.SwaggerD