diff --git a/cucumber/cucumber-tests.ts b/cucumber/cucumber-tests.ts index 3eb86b223f..802f610a62 100644 --- a/cucumber/cucumber-tests.ts +++ b/cucumber/cucumber-tests.ts @@ -3,7 +3,7 @@ import cucumber = require("cucumber"); function StepSample() { type Callback = cucumber.CallbackStepDefinition; - type Table = cucumber.TableDefinition; + type Table = cucumber.TableDefinition; type HookScenario = cucumber.HookScenario; type Hooks = cucumber.Hooks; var step = this; @@ -19,6 +19,14 @@ function StepSample() { scenario.isFailed() && callback.pending(); }); + hook.Before({ timeout: 1000 }, function(scenario: HookScenario, callback: Callback) { + callback(); + }); + + hook.After({ timeout: 1000 }, function(scenario: HookScenario, callback: Callback) { + callback(); + }); + hook.Around(function(scenario: HookScenario, runScenario: (error:string, callback?:Function)=>void) { scenario.isFailed() && runScenario(null, function(){ console.log('finish tasks'); diff --git a/cucumber/index.d.ts b/cucumber/index.d.ts index 99f31c5372..2a7efcdb0e 100644 --- a/cucumber/index.d.ts +++ b/cucumber/index.d.ts @@ -1,6 +1,6 @@ // Type definitions for cucumber-js // Project: https://github.com/cucumber/cucumber-js -// Definitions by: Abraão Alves , Jan Molak +// Definitions by: Abraão Alves , Jan Molak , Isaiah Soung // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped export = cucumber; @@ -70,9 +70,15 @@ declare namespace cucumber { typeName: string; } + interface HookOptions{ + timeout?: number; + } + export interface Hooks { Before(code: HookCode): void; + Before(options: HookOptions, code: HookCode): void; After(code: HookCode): void; + After(options: HookOptions, code: HookCode): void; Around(code: AroundCode):void; setDefaultTimeout(time:number): void; setWorldConstructor(world: () => void): void;