@kubb/plugin-cypress
Version:
Cypress test generator plugin for Kubb, creating end-to-end tests from OpenAPI specifications for automated API testing.
1 lines • 3.12 kB
Source Map (JSON)
{"version":3,"sources":["../src/components/Request.tsx"],"names":["FunctionParams","isOptional","File","jsxs","Function","URLPath"],"mappings":";;;;;;;;AAoBO,SAAS,OAAA,CAAQ,EAAE,OAAU,GAAA,EAAA,EAAI,MAAM,cAAgB,EAAA,WAAA,EAAa,GAAK,EAAA,MAAA,EAA4B,EAAA;AAC1G,EAAM,MAAA,MAAA,GAASA,qBAAe,OAAQ,CAAA;AAAA,IACpC,IAAA,EAAM,WAAY,CAAA,OAAA,EAAS,IACvB,GAAA;AAAA,MACE,IAAA,EAAM,YAAY,OAAS,EAAA,IAAA;AAAA,MAC3B,QAAU,EAAAC,cAAA,CAAW,WAAY,CAAA,OAAA,EAAS,MAAM;AAAA,KAElD,GAAA;AAAA,GACL,CAAA;AAED,EAAM,MAAA,UAAA,GACJ,cAAmB,KAAA,MAAA,GAAS,CAAqB,kBAAA,EAAA,WAAA,CAAY,QAAS,CAAA,IAAI,CAAM,CAAA,CAAA,GAAA,CAAA,mCAAA,EAAsC,WAAY,CAAA,QAAA,CAAS,IAAI,CAAA,EAAA,CAAA;AAEjJ,EAAA,MAAM,IAAO,GAAA,WAAA,CAAY,OAAS,EAAA,IAAA,GAAO,MAAS,GAAA,MAAA;AAElD,EAAA,sCACGC,UAAK,CAAA,MAAA,EAAL,EAAY,IAAY,EAAA,WAAA,EAAW,MAAC,YAAY,EAAA,IAAA,EAC/C,QAAC,kBAAAC,eAAA,CAAAC,cAAA,EAAA,EAAS,MAAY,MAAM,EAAA,IAAA,EAAC,QAAQ,MAAO,CAAA,aAAA,IAAiB,UAC1D,EAAA,QAAA,EAAA;AAAA,IAAmB,cAAA,KAAA,MAAA,IAClB,sBAAsB,MAAM,CAAA,IAAA,EAAO,WAAW,EAAE,CAAA,EAAG,IAAIC,aAAA,CAAQ,GAAG,CAAA,CAAE,WAAY,CAAA,OAAA,CAAQ,YAAY,SAAS,CAAC,MAAM,IAAI,CAAA,8BAAA,EAAiC,WAAY,CAAA,QAAA,CAAS,IAAI,CAAA,eAAA,CAAA;AAAA,IACnL,mBAAmB,MAAU,IAAA,CAAA,mBAAA,EAAsB,MAAM,CAAA,IAAA,EAAO,IAAIA,aAAQ,CAAA,CAAA,EAAG,OAAW,IAAA,EAAE,GAAG,GAAG,CAAA,CAAE,EAAE,SAAU,EAAC,MAAM,IAAI,CAAA,CAAA;AAAA,GAAA,EAC9H,CACF,EAAA,CAAA;AAEJ","file":"chunk-LJ3OQYCX.cjs","sourcesContent":["import { File, Function, FunctionParams } from '@kubb/react'\n\nimport { type HttpMethod, isOptional } from '@kubb/oas'\nimport type { ReactNode } from 'react'\nimport { URLPath } from '@kubb/core/utils'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport type { PluginCypress } from '../types.ts'\n\ntype Props = {\n /**\n * Name of the function\n */\n name: string\n typeSchemas: OperationSchemas\n url: string\n baseURL: string | undefined\n dataReturnType: PluginCypress['resolvedOptions']['dataReturnType']\n method: HttpMethod\n}\n\nexport function Request({ baseURL = '', name, dataReturnType, typeSchemas, url, method }: Props): ReactNode {\n const params = FunctionParams.factory({\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n })\n\n const returnType =\n dataReturnType === 'data' ? `Cypress.Chainable<${typeSchemas.response.name}>` : `Cypress.Chainable<Cypress.Response<${typeSchemas.response.name}>>`\n\n const body = typeSchemas.request?.name ? 'data' : undefined\n\n return (\n <File.Source name={name} isIndexable isExportable>\n <Function name={name} export params={params.toConstructor()} returnType={returnType}>\n {dataReturnType === 'data' &&\n `return cy.request('${method}', '${baseURL ?? ''}${new URLPath(url).toURLPath().replace(/([^/]):/g, '$1\\\\\\\\:')}', ${body}).then((res: Cypress.Response<${typeSchemas.response.name}>) => res.body)`}\n {dataReturnType === 'full' && `return cy.request('${method}', '${new URLPath(`${baseURL ?? ''}${url}`).toURLPath()}', ${body})`}\n </Function>\n </File.Source>\n )\n}\n"]}