@kubb/plugin-cypress
Version:
Cypress test generator plugin for Kubb, creating end-to-end tests from OpenAPI specifications for automated API testing.
75 lines (72 loc) • 2.47 kB
JavaScript
'use strict';
var chunkLJ3OQYCX_cjs = require('./chunk-LJ3OQYCX.cjs');
var utils$1 = require('@kubb/core/utils');
var pluginOas = require('@kubb/plugin-oas');
var hooks = require('@kubb/plugin-oas/hooks');
var utils = require('@kubb/plugin-oas/utils');
var pluginTs = require('@kubb/plugin-ts');
var react = require('@kubb/react');
var jsxRuntime = require('@kubb/react/jsx-runtime');
var cypressGenerator = pluginOas.createReactGenerator({
name: "cypress",
Operation({ operation }) {
const {
pluginManager,
plugin: {
options: { output, baseURL, dataReturnType }
}
} = react.useApp();
const oas = hooks.useOas();
const { getSchemas, getName, getFile } = hooks.useOperationManager();
const request = {
name: getName(operation, { type: "function" }),
file: getFile(operation)
};
const type = {
file: getFile(operation, { pluginKey: [pluginTs.pluginTsName] }),
schemas: getSchemas(operation, { pluginKey: [pluginTs.pluginTsName], type: "type" })
};
return /* @__PURE__ */ jsxRuntime.jsxs(
react.File,
{
baseName: request.file.baseName,
path: request.file.path,
meta: request.file.meta,
banner: utils.getBanner({ oas, output, config: pluginManager.config }),
footer: utils.getFooter({ oas, output }),
children: [
/* @__PURE__ */ jsxRuntime.jsx(
react.File.Import,
{
name: [
type.schemas.request?.name,
type.schemas.response.name,
type.schemas.pathParams?.name,
type.schemas.queryParams?.name,
type.schemas.headerParams?.name,
...type.schemas.statusCodes?.map((item) => item.name) || []
].filter(Boolean),
root: request.file.path,
path: type.file.path,
isTypeOnly: true
}
),
/* @__PURE__ */ jsxRuntime.jsx(
chunkLJ3OQYCX_cjs.Request,
{
name: request.name,
dataReturnType,
typeSchemas: type.schemas,
method: operation.method,
baseURL,
url: new utils$1.URLPath(operation.path).toURLPath()
}
)
]
}
);
}
});
exports.cypressGenerator = cypressGenerator;
//# sourceMappingURL=chunk-AQ3NKEYB.cjs.map
//# sourceMappingURL=chunk-AQ3NKEYB.cjs.map