UNPKG

@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
'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