@amiceli/vitest-cucumber
Version:
vitest tools to use Gherkin feature in unit tests
85 lines (84 loc) • 2.67 kB
TypeScript
type ExpressionRegexConstructor = {
keyword: string;
keywordRegex: RegExp;
groupName: string;
};
export declare abstract class ExpressionRegex<T = unknown> {
readonly keyword: string;
readonly keywordRegex: RegExp;
readonly groupName: string;
constructor(options: ExpressionRegexConstructor);
abstract getRegex(index: number, originalRegex: string): string;
abstract getValue(str: string, index: number): T;
matchGroupName(str: string): boolean;
get cloneKeywordRegex(): RegExp;
resetExpressionStates(): void;
}
export declare class BooleanRegex extends ExpressionRegex<boolean> {
constructor();
getRegex(index: number): string;
getValue(str: string): boolean;
}
export declare class WordRegex extends ExpressionRegex<string> {
constructor();
getRegex(index: number): string;
getValue(str: string): string;
}
export declare class CharRegex extends ExpressionRegex<string> {
constructor();
getRegex(index: number): string;
getValue(str: string): string;
}
export declare class StringRegex extends ExpressionRegex<string> {
constructor();
getRegex(index: number): string;
getValue(str: string): string;
}
export declare class EmailRegex extends ExpressionRegex<string> {
constructor();
getRegex(index: number): string;
getValue(str: string): string;
}
export declare class UrlRegex extends ExpressionRegex<URL> {
constructor();
getRegex(index: number): string;
getValue(str: string): URL;
}
export declare class IntRegex extends ExpressionRegex<number> {
constructor();
getRegex(index: number): string;
getValue(str: string): number;
}
export declare class NumberRegex extends ExpressionRegex<number> {
constructor();
getRegex(index: number): string;
getValue(str: string): number;
}
export declare class DateRegex extends ExpressionRegex<Date> {
constructor();
getRegex(index: number): string;
getValue(str: string): Date;
}
export type Currency = {
raw: string;
value: number;
currency: string;
};
export declare class CurrencyRegex extends ExpressionRegex<Currency> {
constructor();
getRegex(index: number): string;
getValue(str: string): Currency;
}
export declare class ListRegex extends ExpressionRegex<string[]> {
constructor();
private regexMatchSeparators;
resetExpressionStates(): void;
getRegex(index: number, originalRegex: string): string;
getValue(str: string, index: number): string[];
}
export declare class AnyRegex extends ExpressionRegex<string> {
constructor();
getRegex(index: number): string;
getValue(str: string): string;
}
export {};