/** * @module Core */ import { Test } from '../Test'; import { ICallback, IResolver, IGroupReport, ITestOptions, IOptions } from '../Contracts'; /** * Group holds `n` number of tests to be executed. Groups also allows * defining hooks to be called before and after each test and the * group itself. */ export declare class Group { title: string; private _resolveTestFn; private _resolveHookFn; private _options; private _hooks; /** * Timeout defined on group will be applied to * all the tests by default. */ private _timeout; /** * The test error (if any) */ private _error; /** * Has test been executed */ private _completed; /** * An array of tests related to the group. They are mutated by the * run method to filter and keep only the one's that matches * the grep filter. */ private _tests; /** * Storing whether the group has any failing tests or * not. */ private _hasFailingTests; /** * Is there a cherry picked test using the `only` property * or not? */ private _hasCherryPickedTest; constructor(title: string, _resolveTestFn: IResolver, _resolveHookFn: IResolver, _options: IOptions); /** * Returns a boolean telling if group or any of the tests inside * the group has errors. */ get hasErrors(): boolean; /** * Filter tests if grep value is defined */ private _filterTests; /** * Run a hook and if it raises error, then we will * set the completed flag to true, along with the * error. */ private _runHook; /** * Runs a single test along side with it's hooks. */ private _runTest; /** * Runs all the tests one by one and also executes * the beforeEach and afterEach hooks */ private _runTests; /** * Returns the JSON report for the group. The output of this * method is emitted as an event. */ toJSON(): IGroupReport; /** * Define timeout for all the tests inside the group. Still * each test can override it's own timeout. */ timeout(duration: number): this; /** * Create a new test as part of this group. */ test(title: string, callback: ICallback, testOptions?: Partial): Test; /** * Add before hook to be executed before the group starts * executing tests. */ before(cb: ICallback): this; /** * Add after hook to be executed after the group has executed * all the tests. */ after(cb: ICallback): this; /** * Add before each hook to be execute before each test */ beforeEach(cb: ICallback): this; /** * Add after each hook to be execute before each test */ afterEach(cb: ICallback): this; /** * Run the group with it's hooks and all tests. Shouldn't be called * by the end user and Japa itself will call this method */ run(): Promise; }