import * as flowbee from 'flowbee'; import { Request } from './request'; import { Response, PlyResponse } from './response'; import { Storage } from './storage'; import { Retrieval } from './retrieval'; import { Options, PlyOptions } from './options'; import { Logger } from './logger'; import { Diff } from './compare'; import { Yaml } from './yaml'; export declare type ResultStatus = 'Pending' | 'Passed' | 'Failed' | 'Errored' | 'Submitted'; export interface Outcome { /** * Status of test execution */ status: ResultStatus; message: string; /** * One-based line number of first diff, relative to starting line of test */ line?: number; /** * Diff message */ diff?: string; diffs?: Diff[]; start?: number; end?: number; } export interface Result extends Outcome { /** * Request name */ readonly name: string; /** * Request with runtime substitutions, minus Authorization header */ readonly request?: Request; /** * Response maybe with ignore headers removed, and formatted/sorted body content (per options) */ readonly response?: Response; } export declare class PlyResult implements Result { readonly name: string; status: 'Pending' | 'Passed' | 'Failed' | 'Errored' | 'Submitted'; message: string; line: number; diff?: string; request: Request; response: PlyResponse; graphQl?: string; constructor(name: string, request: Request, response: PlyResponse); /** * Returns the result with request/response bodies as objects (if parseable). */ getResult(options: Options): Result; merge(outcome: Outcome): void; } export declare class Verifier { private readonly name; private readonly expectedYaml; private readonly logger; constructor(name: string, expectedYaml: Yaml, logger: Logger); /** * Verify expected vs actual results yaml after substituting values. * Diffs/messages always contain \n newlines. */ verify(actualYaml: Yaml, values: object): Outcome; private diffLine; /** * Adds pre to the beginning of each line in str (except trailing newline). * Optional codeLines, start to restore comments. */ private prefix; } export declare class ResultPaths { readonly expected: Retrieval; readonly actual: Storage; readonly options: Options; readonly log: Storage; isFlowResult: boolean; private constructor(); /** * excluding file extension */ private static bases; /** * Figures out locations and file extensions for results. * Result file path relative to configured result location is the same as retrieval relative * to configured tests location. */ static create(options: PlyOptions, retrieval: Retrieval, suiteName?: string): Promise; /** * Figures out locations and file extensions for results. * Result file path relative to configured result location is the same as retrieval relative * to configured tests location. */ static createSync(options: PlyOptions, retrieval: Retrieval, suiteName?: string): ResultPaths; static extractById(yamlObj: any, id: string, indent?: number): any; /** * Newlines are always \n. */ getExpectedYaml(name?: string): Promise; expectedExists(name?: string): Promise; /** * Newlines are always \n. Trailing \n is appended. */ getActualYaml(name?: string): Yaml; responsesFromActual(): { [key: string]: Response; }; flowInstanceFromActual(flowPath: string): flowbee.FlowInstance | undefined; } /** * Parses a request's response from actual results. */ export declare class ResponseParser { private readonly options; private actualYaml; private yamlLines; private actualObj; constructor(actualResult: Storage, options: Options); parse(): { [key: string]: Response; }; } /** * Parses a flow instance from actual results. */ export declare class ResultFlowParser { private readonly options; private actualYaml; private yamlLines; private actualObj; constructor(actualResult: Storage, options: Options); parse(flowPath: string): flowbee.FlowInstance | undefined; getStepInstances(obj: any, offset?: number): flowbee.StepInstance[]; parseStartEnd(flowElementInstance: flowbee.StepInstance | flowbee.SubflowInstance, obj: any, offset?: number): void; }