import type { Frameworks } from '@wdio/types'
export interface ITestCaseHookParameter {
gherkinDocument: GherkinDocument;
pickle: Pickle;
result?: TestStepResult;
willBeRetried?: boolean;
testCaseStartedId: string;
}
export declare class Duration {
seconds: number
nanos: number
}
export declare class GherkinDocument {
uri?: string
feature?: Feature
comments: readonly Comment[]
}
export declare class Background {
location: Location
keyword: string
name: string
description: string
steps: readonly Step[]
id: string
}
export declare class DataTable {
location: Location
rows: readonly TableRow[]
}
export declare class DocString {
location: Location
mediaType?: string
content: string
delimiter: string
}
export declare class Examples {
location: Location
tags: readonly Tag[]
keyword: string
name: string
description: string
tableHeader?: TableRow
tableBody: readonly TableRow[]
id: string
}
export declare class Feature {
location: Location
tags: readonly Tag[]
language: string
keyword: string
name: string
description: string
children: readonly FeatureChild[]
}
export declare class FeatureChild {
rule?: Rule
background?: Background
scenario?: Scenario
}
export declare class Rule {
location: Location
tags: readonly Tag[]
keyword: string
name: string
description: string
children: readonly RuleChild[]
id: string
}
export declare class RuleChild {
background?: Background
scenario?: Scenario
}
export declare class Scenario {
location: Location
tags: readonly Tag[]
keyword: string
name: string
description: string
steps: readonly Step[]
examples: readonly Examples[]
id: string
}
export declare class Step {
location: Location
keyword: string
keywordType?: StepKeywordType
text: string
docString?: DocString
dataTable?: DataTable
id: string
}
export declare class TableCell {
location: Location
value: string
}
export declare class TableRow {
location: Location
cells: readonly TableCell[]
id: string
}
export declare class Tag {
location: Location
name: string
id: string
}
export declare class Pickle {
id: string
uri: string
name: string
language: string
steps: readonly PickleStep[]
tags: readonly PickleTag[]
astNodeIds: readonly string[]
}
export declare class PickleDocString {
mediaType?: string
content: string
}
export declare class PickleStep {
argument?: PickleStepArgument
astNodeIds: readonly string[]
id: string
type?: PickleStepType
text: string
}
export declare class PickleStepArgument {
docString?: PickleDocString
dataTable?: PickleTable
}
export declare class PickleTable {
rows: readonly PickleTableRow[]
}
export declare class PickleTableCell {
value: string
}
export declare class PickleTableRow {
cells: readonly PickleTableCell[]
}
export declare class PickleTag {
name: string
astNodeId: string
}
export declare class TestStepResult {
duration: Duration
message?: string
status: TestStepResultStatus
}
export declare enum PickleStepType {
UNKNOWN = 'Unknown',
CONTEXT = 'Context',
ACTION = 'Action',
OUTCOME = 'Outcome'
}
export declare enum StepKeywordType {
UNKNOWN = 'Unknown',
CONTEXT = 'Context',
ACTION = 'Action',
OUTCOME = 'Outcome',
CONJUNCTION = 'Conjunction'
}
export declare enum TestStepResultStatus {
UNKNOWN = 'UNKNOWN',
PASSED = 'PASSED',
SKIPPED = 'SKIPPED',
PENDING = 'PENDING',
UNDEFINED = 'UNDEFINED',
AMBIGUOUS = 'AMBIGUOUS',
FAILED = 'FAILED'
}
export declare class Location {
line: number
column?: number
}
export declare class Comment {
location: Location
text: string
}
export interface CucumberStore {
feature?: Feature,
scenario?: Pickle,
uri?: string,
stepsStarted: boolean,
scenariosStarted: boolean
steps: Frameworks.PickleStep[]
}
export interface CucumberHook {
id: string,
hookId: string
}
export interface CucumberHookParams {
event: 'before'|'after',
hookUUID?: string
}