UNPKG

swagger-parser-mock

Version:

一个简单的 Swagger 文档解析器,支持生成演示数据与数据实体类

55 lines (50 loc) 1.38 kB
const swaggerParserMock = require('../lib') const spec = { petStore: { docs: swaggerParserMock({ spec: require('./specs/v3/petstore.json') }), schema: { pet: { id: '@integer(60, 100)', name: '@string', tag: '@string' }, error: { code: '@integer(60, 100)', message: '@string' } } } } describe('v3.test.js', () => { let getAPI let getMock beforeAll(() => { getMock = (api) => { const res = api.responses['200'] || api.responses['default'] if (!res) return return res.example && JSON.parse(res.example) } getAPI = (url, method) => { return spec.petStore.docs.then(res => { for (let _url in res.paths) { if (url === _url) { for (let _method in res.paths[_url]) { if (method === _method) { return res.paths[url][method] } } } } }) } }) describe('petstore', () => { test('/pets', done => { getAPI('/pets', 'get') .then(res => { const mock = getMock(res) expect(mock).toHaveLength(1) expect(mock[0]).toEqual(spec.petStore.schema.pet) }) .then(() => getAPI('/pets', 'post')) .then(res => { const mock = getMock(res) expect(mock).toEqual(spec.petStore.schema.error) done() }) }) }) })