UNPKG

openapi-modifier

Version:

This package allows you to automate the process of modifying OpenAPI specifications by applying a set of predefined rules

140 lines (139 loc) 5.53 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const index_1 = __importDefault(require("./index")); describe('change-endpoints-basepath rule', () => { test('regular', () => { const fakeLogger = global.createFakeLogger(); const fakeOpenAPIFile = global.createFakeOpenAPIFile({ paths: { '/api/v1/pets': { get: { summary: '', tags: [], responses: {}, }, }, }, }); expect(index_1.default.processDocument(fakeOpenAPIFile, { map: { '/api/v1': '' }, }, fakeLogger, { ruleName: '' })).toEqual(Object.assign(Object.assign({}, fakeOpenAPIFile), { document: Object.assign(Object.assign({}, fakeOpenAPIFile.document), { paths: { '/pets': { get: { summary: '', tags: [], responses: {}, }, }, } }) })); expect(fakeLogger.warning).toBeCalledTimes(0); }); test('regular, logger warning', () => { const fakeLogger = global.createFakeLogger(); const fakeOpenAPIFile = global.createFakeOpenAPIFile({ paths: { '/api/v1/pets': { get: { summary: '', tags: [], responses: {}, }, }, }, }); expect(index_1.default.processDocument(fakeOpenAPIFile, { map: { '/api/v2': '' }, }, fakeLogger, { ruleName: '' })).toEqual(Object.assign({}, fakeOpenAPIFile)); expect(fakeLogger.warning).toBeCalledLoggerMethod(/Not found endpoints with prefix/, 1); }); test('usage option: map', () => { const fakeLogger = global.createFakeLogger(); const fakeOpenAPIFile = global.createFakeOpenAPIFile({ paths: { '/api/v1/pets': { get: { summary: '', tags: [], responses: {}, }, }, }, }); expect(index_1.default.processDocument(fakeOpenAPIFile, { map: { '/api/v1': '/proxy' }, }, fakeLogger, { ruleName: '' })).toEqual(Object.assign(Object.assign({}, fakeOpenAPIFile), { document: Object.assign(Object.assign({}, fakeOpenAPIFile.document), { paths: { '/proxy/pets': { get: { summary: '', tags: [], responses: {}, }, }, } }) })); expect(fakeLogger.warning).toBeCalledTimes(0); }); test('operations collision', () => { const fakeLogger = global.createFakeLogger(); const fakeOpenAPIFile = global.createFakeOpenAPIFile({ paths: { '/proxy/pets': { get: { summary: '', tags: [], responses: {}, }, }, '/api/v1/pets': { get: { summary: '', tags: [], responses: {}, }, }, }, }); expect(index_1.default.processDocument(fakeOpenAPIFile, { map: { '/api/v1': '/proxy' }, }, fakeLogger, { ruleName: '' })).toEqual(Object.assign(Object.assign({}, fakeOpenAPIFile), { document: Object.assign({}, fakeOpenAPIFile.document) })); expect(fakeLogger.warning).toBeCalledTimes(0); expect(fakeLogger.errorMessage).toBeCalledLoggerMethod(/operaion conflicts/, 1); }); test('operations collision, usage config.ignoreOperationCollisions', () => { const fakeLogger = global.createFakeLogger(); const fakeOpenAPIFile = global.createFakeOpenAPIFile({ paths: { '/proxy/pets': { get: { summary: '', tags: [], responses: {}, }, }, '/api/v1/pets': { get: { summary: '', tags: [], responses: {}, }, }, }, }); expect(index_1.default.processDocument(fakeOpenAPIFile, { map: { '/api/v1': '/proxy' }, ignoreOperationCollisions: true, }, fakeLogger, { ruleName: '' })).toEqual(Object.assign(Object.assign({}, fakeOpenAPIFile), { document: Object.assign(Object.assign({}, fakeOpenAPIFile.document), { paths: { '/proxy/pets': { get: { summary: '', tags: [], responses: {}, }, }, } }) })); expect(fakeLogger.warning).toBeCalledTimes(0); expect(fakeLogger.error).toBeCalledTimes(0); }); });