diff options
| author | Eugen Wissner <belka@caraus.de> | 2018-12-24 20:19:20 +0100 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2018-12-24 20:19:20 +0100 |
| commit | 0e8f395f7a9c422860f3f4c161788aca009d9889 (patch) | |
| tree | df35f0f572432fcd9814b30d7dab8787ee409174 /type-parser/features/steps | |
| parent | 714245fcb0303249c14bd4737c1927103b106b0c (diff) | |
| download | cucumber-js-demo-0e8f395f7a9c422860f3f4c161788aca009d9889.tar.gz | |
Create a branch with custom parameters
Diffstat (limited to 'type-parser/features/steps')
| -rw-r--r-- | type-parser/features/steps/custom-type.js | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/type-parser/features/steps/custom-type.js b/type-parser/features/steps/custom-type.js new file mode 100644 index 0000000..a200a9c --- /dev/null +++ b/type-parser/features/steps/custom-type.js @@ -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) +}) |
