@kubb/plugin-cypress
Version:
Cypress test generator plugin for Kubb, creating end-to-end tests from OpenAPI specifications for automated API testing.
60 lines (57 loc) • 2.09 kB
TypeScript
import { Output, Group, ResolveNameParams, PluginFactoryOptions } from '@kubb/core';
import { Oas, contentType } from '@kubb/oas';
import { Exclude, Include, Override, Generator, ResolvePathOptions } from '@kubb/plugin-oas';
type Options = {
/**
* Specify the export location for the files and define the behavior of the output
* @default { path: 'cypress', barrelType: 'named' }
*/
output?: Output<Oas>;
/**
* Define which contentType should be used.
* By default, the first JSON valid mediaType will be used
*/
contentType?: contentType;
/**
* ReturnType that will be used when calling cy.request.
* - 'data' will return ResponseConfig[data].
* - 'full' will return ResponseConfig.
* @default 'data'
*/
dataReturnType?: 'data' | 'full';
baseURL?: string;
/**
* Group the Cypress requests based on the provided name.
*/
group?: Group;
/**
* Array containing exclude parameters to exclude/skip tags/operations/methods/paths.
*/
exclude?: Array<Exclude>;
/**
* Array containing include parameters to include tags/operations/methods/paths.
*/
include?: Array<Include>;
/**
* Array containing override parameters to override `options` based on tags/operations/methods/paths.
*/
override?: Array<Override<ResolvedOptions>>;
transformers?: {
/**
* Customize the names based on the type that is provided by the plugin.
*/
name?: (name: ResolveNameParams['name'], type?: ResolveNameParams['type']) => string;
};
/**
* Define some generators next to the Cypress generators.
*/
generators?: Array<Generator<PluginCypress>>;
};
type ResolvedOptions = {
output: Output<Oas>;
group: Options['group'];
baseURL: Options['baseURL'] | undefined;
dataReturnType: NonNullable<Options['dataReturnType']>;
};
type PluginCypress = PluginFactoryOptions<'plugin-cypress', Options, ResolvedOptions, never, ResolvePathOptions>;
export type { Options as O, PluginCypress as P };