diff options
Diffstat (limited to 'data-tables/features')
| -rw-r--r-- | data-tables/features/json.feature | 69 | ||||
| -rw-r--r-- | data-tables/features/steps/json.js | 50 |
2 files changed, 119 insertions, 0 deletions
diff --git a/data-tables/features/json.feature b/data-tables/features/json.feature new file mode 100644 index 0000000..176efc6 --- /dev/null +++ b/data-tables/features/json.feature @@ -0,0 +1,69 @@ +Feature: + As the owner of a book collection + I want to be able to generate JSON containing titles from this collection + + Scenario: + Given the following books by Simon Frank are in the collection: + | id | title | + | 1 | Der Gegenstand des Wissens | + | 2 | Lebendiges Wissen | + When I stringify it + Then I should get: + """ + [{ + "id": 1, + "title": "Der Gegenstand des Wissens" + },{ + "id": 2, + "title": "Lebendiges Wissen" + }] + """ + + Given the following books by Søren Kierkegaard are in the collection: + | id | title | + | 1 | Die Krankheit zum Tode | + | 2 | Entweder-Oder | + When I stringify it + Then I should get: + """ + [{ + "id": 1, + "title": "Die Krankheit zum Tode" + },{ + "id": 2, + "title": "Entweder-Oder" + }] + """ + + Given the following book is in the collection: + | id | 1 | + | title | Leonce und Lena | + | author | Georg Büchner | + When I stringify it + Then I should get: + """ + { + "id": 1, + "title": "Leonce und Lena", + "author": "Georg Büchner" + } + """ + + Given the following books are in the collection: + | Friedrich Nietzsche | Die Geburt der Tragödie | + | Jacques Derrida | Die unbedingte Universität | + | Honoré de Balzac | Die Frau von 30 Jahren | + When I stringify it + Then I should get: + """ + [{ + "author": "Friedrich Nietzsche", + "title": "Die Geburt der Tragödie" + },{ + "author": "Jacques Derrida", + "title": "Die unbedingte Universität" + },{ + "author": "Honoré de Balzac", + "title": "Die Frau von 30 Jahren" + }] + """ 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)) +}) |
