From fe4f62ff1a3346476aa6f4d025324d7d6cecf952 Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Thu, 27 Dec 2018 08:47:18 +0100 Subject: Add an example that reuses a step definition --- reuse/features/steps/reusable.js | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 reuse/features/steps/reusable.js (limited to 'reuse/features/steps') diff --git a/reuse/features/steps/reusable.js b/reuse/features/steps/reusable.js new file mode 100644 index 0000000..07ac8c5 --- /dev/null +++ b/reuse/features/steps/reusable.js @@ -0,0 +1,28 @@ +import { Before, Given, Then } from 'cucumber' +import { expect } from 'chai' + +Before(function () { + this.names = [] +}) + +function step (name) { + this.names.push(name) +} + +function decorator (f, ...args) { + if (args.length > 0) { + return function () { + f.call(this, args[0]) + } + } else { + return f + } +} + +Given('a person with name', decorator(step, 'John')) +Given('a person named {word}', decorator(step)) + +Then('the same function is called for two distinct step definitions', function () { + expect(this.names).to.have.lengthOf(2) + expect(this.names).to.include.members(['John', 'Jack']) +}) -- cgit v1.2.3