import * as fs from 'node:fs'; import * as path from 'node:path'; import { describe, expect, test } from 'vite-plus/test'; import { convertOpenApi } from '../src'; describe('importer-openapi', () => { const p = path.join(__dirname, 'fixtures'); const fixtures = fs.readdirSync(p); test('Maps operation description to request description', async () => { const imported = await convertOpenApi( JSON.stringify({ openapi: '3.0.0', info: { title: 'Description Test', version: '1.0.0' }, paths: { '/klanten': { get: { description: 'Lijst van klanten', responses: { '200': { description: 'ok' } }, }, }, }, }), ); expect(imported?.resources.httpRequests).toEqual([ expect.objectContaining({ description: 'Lijst van klanten', }), ]); }); test('Skips invalid file', async () => { const imported = await convertOpenApi('{}'); expect(imported).toBeUndefined(); }); for (const fixture of fixtures) { test(`Imports ${fixture}`, async () => { const contents = fs.readFileSync(path.join(p, fixture), 'utf-8'); const imported = await convertOpenApi(contents); expect(imported?.resources.workspaces).toEqual([ expect.objectContaining({ name: 'Swagger Petstore - OpenAPI 3.0', description: expect.stringContaining('This is a sample Pet Store Server'), }), ]); expect(imported?.resources.httpRequests.length).toBe(19); expect(imported?.resources.folders.length).toBe(7); }); } });