diff options
Diffstat (limited to 'data-tables/features/steps')
| -rw-r--r-- | data-tables/features/steps/json.js | 50 |
1 files changed, 50 insertions, 0 deletions
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)) +}) |
