diff options
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) +}) |
