1
0
cucumber-js-demo/reuse/features/steps/reusable.js

25 lines
565 B
JavaScript

import { Before, Given, Then } from 'cucumber'
import { expect } from 'chai'
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'])
})