1
0

Create a branch with custom parameters

This commit is contained in:
2018-12-24 20:19:20 +01:00
parent 714245fcb0
commit 0e8f395f7a
4 changed files with 775 additions and 0 deletions

View File

@ -0,0 +1,14 @@
Feature: Custom parameter types
Scenario:
When I interpret "to be" as a type
Then true is true
And false is not true
Scenario:
When a date 24.12.2018 is given
Then it gets converted to a Date object
Scenario:
Given a regular expression matches this pattern
And it matches that pattern
Then the step definition should be called twice

View File

@ -0,0 +1,48 @@
const { Before, Given, When, Then, defineParameterType } = require('cucumber')
const { expect } = require('chai')
defineParameterType({
name: 'tobe',
regexp: [
/is/,
/is not/
],
transformer: x => x === 'is'
})
When('I interpret "to be" as a type', function () {
})
Then('true {tobe} true', function (predicate) {
expect(predicate).to.be.true
})
Then('false {tobe} true', function (predicate) {
expect(predicate).to.be.false
})
defineParameterType({
name: 'date',
regexp: /\d{2}\.\d{2}\.\d{4}/
})
When('a date {date} is given', function (dateString) {
const parts = dateString.split('.').reverse()
this.date = new Date(...parts)
})
Then('it gets converted to a Date object', function () {
expect(this.date).to.be.an.instanceof(Date)
})
Before(function () {
this.count = 0
})
Given(/(a regular expression|it) matches (this|that) pattern/, function (_, _) {
++this.count
})
Then('the step definition should be called twice', function () {
expect(this.count).to.equal(2)
})