@cucumber/cucumber
Version:
The official JavaScript implementation of Cucumber.
79 lines (78 loc) • 2.72 kB
TypeScript
import * as messages from '@cucumber/messages';
import Formatter, { IFormatterOptions } from './';
export interface IJsonFeature {
description: string;
elements: IJsonScenario[];
id: string;
keyword: string;
line: number;
name: string;
tags: IJsonTag[];
uri: string;
}
export interface IJsonScenario {
description: string;
id: string;
keyword: string;
line: number;
name: string;
steps: IJsonStep[];
tags: IJsonTag[];
type: string;
}
export interface IJsonStep {
arguments?: any;
embeddings?: any;
hidden?: boolean;
keyword?: string;
line?: number;
match?: any;
name?: string;
result?: any;
}
export interface IJsonTag {
name: string;
line: number;
}
interface IBuildJsonFeatureOptions {
feature: messages.Feature;
elements: IJsonScenario[];
uri: string;
}
interface IBuildJsonScenarioOptions {
feature: messages.Feature;
gherkinScenarioMap: Record<string, messages.Scenario>;
gherkinExampleRuleMap: Record<string, messages.Rule>;
gherkinScenarioLocationMap: Record<string, messages.Location>;
pickle: messages.Pickle;
steps: IJsonStep[];
}
interface IBuildJsonStepOptions {
isBeforeHook: boolean;
gherkinStepMap: Record<string, messages.Step>;
pickleStepMap: Record<string, messages.PickleStep>;
testStep: messages.TestStep;
testStepAttachments: messages.Attachment[];
testStepResult: messages.TestStepResult;
}
export default class JsonFormatter extends Formatter {
static readonly documentation: string;
constructor(options: IFormatterOptions);
convertNameToId(obj: messages.Feature | messages.Pickle): string;
formatDataTable(dataTable: messages.PickleTable): any;
formatDocString(docString: messages.PickleDocString, gherkinStep: messages.Step): any;
formatStepArgument(stepArgument: messages.PickleStepArgument, gherkinStep: messages.Step): any;
onTestRunFinished(): void;
getFeatureData({ feature, elements, uri, }: IBuildJsonFeatureOptions): IJsonFeature;
getScenarioData({ feature, gherkinScenarioLocationMap, gherkinExampleRuleMap, gherkinScenarioMap, pickle, steps, }: IBuildJsonScenarioOptions): IJsonScenario;
private formatScenarioId;
getStepData({ isBeforeHook, gherkinStepMap, pickleStepMap, testStep, testStepAttachments, testStepResult, }: IBuildJsonStepOptions): IJsonStep;
getFeatureTags(feature: messages.Feature): IJsonTag[];
getScenarioTags({ feature, pickle, gherkinScenarioMap, }: {
feature: messages.Feature;
pickle: messages.Pickle;
gherkinScenarioMap: Record<string, messages.Scenario>;
}): IJsonTag[];
private getScenarioTag;
}
export {};