@badeball/cypress-cucumber-preprocessor
Version:
[](https://github.com/badeball/cypress-cucumber-preprocessor/actions/workflows/build.yml) [ • 3.44 kB
TypeScript
import { Expression, ParameterTypeRegistry } from "@cucumber/cucumber-expressions";
import parse from "@cucumber/tag-expressions";
import { IdGenerator } from "@cucumber/messages";
import DataTable from "./data_table";
import { CypressCucumberError } from "./helpers/error";
import { IHookBody, IStepHookBody, IStepHookParameter, IParameterTypeDefinition, IStepDefinitionBody, IHookParameter, IHookOptions } from "./public-member-types";
import { Position } from "./helpers/source-map";
export interface IStepDefinition<T extends unknown[], C extends Mocha.Context> {
id: string;
expression: Expression;
implementation: IStepDefinitionBody<T, C>;
position?: Position;
}
export declare class MissingDefinitionError extends CypressCucumberError {
}
export declare class MultipleDefinitionsError extends CypressCucumberError {
}
export type ScenarioHookKeyword = "Before" | "After";
export type StepHookKeyword = "BeforeStep" | "AfterStep";
interface IBaseHook<Implementation, Keyword> {
tags?: string;
name?: string;
node: ReturnType<typeof parse>;
implementation: Implementation;
keyword: Keyword;
position?: Position;
}
export interface IHook extends IBaseHook<IHookBody, ScenarioHookKeyword> {
id: string;
}
export type IStepHook = IBaseHook<IStepHookBody, StepHookKeyword>;
export declare class Registry {
private experimentalSourceMap;
parameterTypeRegistry: ParameterTypeRegistry;
private preliminaryStepDefinitions;
stepDefinitions: IStepDefinition<unknown[], Mocha.Context>[];
private preliminaryHooks;
hooks: IHook[];
stepHooks: IStepHook[];
constructor(experimentalSourceMap: boolean);
finalize(newId: IdGenerator.NewId): void;
defineStep(description: string | RegExp, implementation: () => void): void;
defineParameterType<T, C extends Mocha.Context>({ name, regexp, transformer, }: IParameterTypeDefinition<T, C>): void;
defineHook(keyword: ScenarioHookKeyword, options: IHookOptions, fn: IHookBody): void;
defineBefore(options: IHookOptions, fn: IHookBody): void;
defineAfter(options: IHookOptions, fn: IHookBody): void;
defineStepHook(keyword: StepHookKeyword, options: IHookOptions, fn: IStepHookBody): void;
defineBeforeStep(options: IHookOptions, fn: IStepHookBody): void;
defineAfterStep(options: IHookOptions, fn: IStepHookBody): void;
getMatchingStepDefinitions(text: string): IStepDefinition<unknown[], Mocha.Context>[];
resolveStepDefintion(text: string): IStepDefinition<unknown[], Mocha.Context>;
runStepDefininition(world: Mocha.Context, text: string, argument?: DataTable | string): unknown;
resolveHooks(keyword: ScenarioHookKeyword, tags: string[]): IHook[];
resolveBeforeHooks(tags: string[]): IHook[];
resolveAfterHooks(tags: string[]): IHook[];
runHook(world: Mocha.Context, hook: IHook, options: IHookParameter): void;
resolveStepHooks(keyword: StepHookKeyword, tags: string[]): IStepHook[];
resolveBeforeStepHooks(tags: string[]): IStepHook[];
resolveAfterStepHooks(tags: string[]): IStepHook[];
runStepHook(world: Mocha.Context, hook: IStepHook, options: IStepHookParameter): void;
}
export declare function withRegistry(experimentalSourceMap: boolean, fn: () => void): Registry;
export declare function assignRegistry(registry: Registry): void;
export declare function freeRegistry(): void;
export declare function getRegistry(): Registry;
export {};