UNPKG

@qavajs/core

Version:

qavajs framework core

169 lines (158 loc) 4.29 kB
export * from '@cucumber/cucumber'; import { DataTable, IWorld, When } from '@cucumber/cucumber'; import { IConfiguration, IRunResult } from '@cucumber/cucumber/api'; export const Override: typeof When; export { Fixture } from 'src/Fixture'; export { Template } from 'src/Template'; export { BeforeExecution, AfterExecution } from 'src/executionHooks.js'; /** * Validation function * @example * expect(actualValue, expectedValue); * expect.poll(actualValue, expectedValue) */ export interface Validation { /** * Perform validation * @param {any} actualResult - actual result * @param {any} expectedResult - expected result */ (actualResult: any, expectedResult: any): void; /** * @property * original expression passed to memory value */ type: string; /** * Perform polling validation * @param {any} actualResult - actual result * @param {any} expectedResult - expected result * @param {number} options.timeout - timeout to poll * @param {number} options.interval - interval to poll */ poll: (AR: any, ER: any, options?: {timeout?: number, interval?: number}) => Promise<unknown> } /** * Memory value * @example * memoryValue.value(); * memoryValue.set('some data') */ export interface MemoryValue { /** * @property * original expression passed to memory value */ expression: string; /** * Return resolved value * @example * url.value() * @return Promise<any> */ value(): any; /** * Set value to memory with provided key * @param {any} value - value to set * @example * url.set('https://qavajs.github.io/') */ set(value: any): void; } export interface IQavajsWorld extends IWorld { /** * Get value from memory * @param {any} expression - expression to parse */ getValue(expression: any): any; /** * Save value to memory * @param {string} key - key to store * @param {any} value - value to store */ setValue(key: string, value: any): void; /** * Execute existing step definition * @param {string} step - cucumber expression to execute * @param {DataTable | string} extraParam - extra data table or multiline string * @example * this.executeStep(`I click 'Login Button'`); */ executeStep(step: string, extraParam?: DataTable | string): Promise<void>; /** * Execute test by provided path and test title * @param {string} path - feature file path * @param {string} title - test title * @example * this.executeTest('features/Login.feature', 'Login'); */ executeTest(path: string, title: string): Promise<void>; /** * Return validation function by provided type * @param {string} type - type of validation */ validation(type: string): Validation; /** * qavajs config */ config: any; } export interface IQavajsConfig extends Partial<IConfiguration> { /** * instance of memory object * * default: {} * @example * import Memory from './memory/Memory'; * * export default { * memory: new Memory() * } */ memory?: Object, /** * Cucumber steps timeout * * default: 10_000 * @example * export default { * defaultTimeout: 20_000 * } */ defaultTimeout?: number, /** * Qavajs services * * default: [] * @example * export default { * service: [{ * before() { * console.log('service started'); * }, * after(result: IRunResult) { * console.log(result.success); * } * }] * } */ service?: Array<{ before?: () => void, after: (result: IRunResult) => void }>, /** * Qavajs service timeout * * default: [] * @example * export default { * service: [{ * before() { * console.log('service started'); * }, * after(result: IRunResult) { * console.log(result.success); * } * }], * serviceTimeout: 30_000 * } */ serviceTimeout?: number }