1
0

reuse: Apply function with Ramda and Lodash

This commit is contained in:
2019-01-03 06:11:13 +01:00
parent 54fcfda40a
commit 48a1f3756b
7 changed files with 78 additions and 29 deletions

View File

@ -3,3 +3,13 @@ Feature:
Given a person with name
And a person named Jack
Then the same function is called for two distinct step definitions
Scenario:
Given a person with a first name
And a person with the first name Jack
Then the first names are collected by the same function
Scenario:
Given a person with a last name
And a person with the last name Doe
Then the last names are collected by the same function

View File

@ -0,0 +1,15 @@
import { Before, Given, Then } from 'cucumber'
import { expect } from 'chai'
import _ from 'lodash'
function step (name) {
this.names.push(name)
}
Given('a person with a first name', _.partial(step, 'John'))
Given('a person with the first name {word}', step)
Then('the first names are collected by the same function', function () {
expect(this.names).to.have.lengthOf(2)
expect(this.names).to.include.members(['John', 'Jack'])
})

View File

@ -0,0 +1,15 @@
import { Before, Given, Then } from 'cucumber'
import { expect } from 'chai'
import R from 'ramda'
function step (name) {
this.names.push(name)
}
Given('a person with a last name', R.partial(step, ['Junior']))
Given('a person with the last name {word}', R.partial(step, []))
Then('the last names are collected by the same function', function () {
expect(this.names).to.have.lengthOf(2)
expect(this.names).to.include.members(['Junior', 'Doe'])
})

View File

@ -1,10 +1,6 @@
import { Before, Given, Then } from 'cucumber'
import { expect } from 'chai'
Before(function () {
this.names = []
})
function step (name) {
this.names.push(name)
}
@ -13,7 +9,7 @@ function decorator (f, ...args) {
if (args.length > 0) {
return function () {
f.call(this, args[0])
}
}
} else {
return f
}

View File

@ -0,0 +1,5 @@
import { setWorldConstructor } from 'cucumber'
setWorldConstructor(function () {
this.names = []
})