summaryrefslogtreecommitdiff
path: root/async/features
diff options
context:
space:
mode:
Diffstat (limited to 'async/features')
-rw-r--r--async/features/request.feature8
-rw-r--r--async/features/steps/async.js9
-rw-r--r--async/features/steps/request.js25
-rw-r--r--async/features/support/hooks.js20
4 files changed, 62 insertions, 0 deletions
diff --git a/async/features/request.feature b/async/features/request.feature
new file mode 100644
index 0000000..85e3123
--- /dev/null
+++ b/async/features/request.feature
@@ -0,0 +1,8 @@
+Feature: Request
+ Scenario:
+ When I request the same resource three times
+ Then the responses should be the same
+
+ Scenario:
+ When I request the same resource twice
+ Then the responses should be the same
diff --git a/async/features/steps/async.js b/async/features/steps/async.js
new file mode 100644
index 0000000..ea88856
--- /dev/null
+++ b/async/features/steps/async.js
@@ -0,0 +1,9 @@
+import { When } from 'cucumber'
+import axios from 'axios'
+
+When('I request the same resource twice', async function () {
+ const url = 'http://localhost:8080/'
+
+ this.first = await axios.request(url).data
+ this.second = await axios.request(url).data
+})
diff --git a/async/features/steps/request.js b/async/features/steps/request.js
new file mode 100644
index 0000000..ac74d10
--- /dev/null
+++ b/async/features/steps/request.js
@@ -0,0 +1,25 @@
+import { Given, When, Then } from 'cucumber'
+import { expect } from 'chai'
+import axios from 'axios'
+
+When('I request the same resource three times', function () {
+ const url = 'http://localhost:8080/'
+
+ return axios.request(url)
+ .then(res => {
+ this.first = res.data
+
+ return axios.request(url)
+ }).then(res => {
+ this.second = res.data
+
+ return axios.request(url)
+ }).then(res => {
+ this.third = res.data
+ })
+})
+
+Then('the responses should be the same', function () {
+ expect(this.first).to.equal(this.second)
+ expect(this.second).to.equal(this.third)
+})
diff --git a/async/features/support/hooks.js b/async/features/support/hooks.js
new file mode 100644
index 0000000..c86df1e
--- /dev/null
+++ b/async/features/support/hooks.js
@@ -0,0 +1,20 @@
+import { BeforeAll, AfterAll } from 'cucumber'
+import express from 'express'
+
+let server
+
+BeforeAll(function () {
+ const app = express()
+
+ app.get('/', (req, res) => {
+ res.send('Alea iacta est')
+ })
+
+ server = app.listen(8080)
+})
+
+AfterAll(function () {
+ server.close()
+})
+
+