From 15e5e413d9a49012202c46f8fde747c1593ec0f1 Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Sat, 10 Nov 2018 20:06:38 +0100 Subject: Add code --- data-tables/features/steps/json.js | 50 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 data-tables/features/steps/json.js (limited to 'data-tables/features/steps') diff --git a/data-tables/features/steps/json.js b/data-tables/features/steps/json.js new file mode 100644 index 0000000..cd61a8b --- /dev/null +++ b/data-tables/features/steps/json.js @@ -0,0 +1,50 @@ +import { Given, When, Then } from 'cucumber' +import { expect } from 'chai' + +Given('the following books by Simon Frank are in the collection:', function (dataTable) { + this.objects = [] + dataTable.hashes().forEach(el => { + this.objects.push({ + id: parseInt(el.id), + title: el.title + }) + }) +}) + +Given('the following books by Søren Kierkegaard are in the collection:', function (dataTable) { + this.objects = [] + dataTable.rows().forEach(el => { + this.objects.push({ + id: parseInt(el[0]), + title: el[1] + }) + }) +}) + +Given('the following book is in the collection:', function (dataTable) { + const data = dataTable.rowsHash() + this.objects = { + id: parseInt(data.id), + title: data.title, + author: data.author + } +}) + +Given('the following books are in the collection:', function (dataTable) { + this.objects = [] + dataTable.raw().forEach(el => { + this.objects.push({ + author: el[0], + title: el[1] + }) + }) +}) + +When('I stringify it', function () { + this.result = JSON.stringify(this.objects) +}) + +Then('I should get:', function (expected) { + expect(JSON.parse(expected)) + .to.deep.equal(JSON.parse(this.result)) +}) -- cgit v1.2.3