fastify-openapi-glue
Version:
generate a fastify configuration from an openapi specification
33 lines (30 loc) • 1.28 kB
JavaScript
import { createRequire } from "node:module";
import { test } from "node:test";
import { Generator } from "../lib/generator.js";
import { templateTypes } from "../lib/templates/templateTypes.js";
const importJSON = createRequire(import.meta.url);
const localFile = (fileName) => new URL(fileName, import.meta.url).pathname;
const dir = localFile(".");
const checksumOnly = true;
const localPlugin = false;
// if you need new checksums (e.g. because you changed template or spec file)
// run `npm run updateChecksums`
const specs = new Set(["./test-swagger.v2", "./test-swagger-noBasePath.v2"]);
for (const type of templateTypes) {
for (const spec of specs) {
const specFile = localFile(`${spec}.json`);
const checksumFile = localFile(`${spec}.${type}.checksums.json`);
const testChecksums = await importJSON(checksumFile);
const project = `generated-${type}-project`;
const generator = new Generator(checksumOnly, localPlugin);
await test(`generator generates ${type} project data for ${spec}`, async (t) => {
try {
await generator.parse(specFile);
const checksums = await generator.generateProject(dir, project, type);
t.assert.deepEqual(checksums, testChecksums, "checksums match");
} catch (e) {
t.assert.fail(e.message);
}
});
}
}