summaryrefslogtreecommitdiff
path: root/type-parser/features/steps
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2018-12-24 20:19:20 +0100
committerEugen Wissner <belka@caraus.de>2018-12-24 20:19:20 +0100
commit0e8f395f7a9c422860f3f4c161788aca009d9889 (patch)
treedf35f0f572432fcd9814b30d7dab8787ee409174 /type-parser/features/steps
parent714245fcb0303249c14bd4737c1927103b106b0c (diff)
downloadcucumber-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.js48
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)
+})