Replaced gherkin tables by json documents in requests and responses of insert features

This commit is contained in:
Héctor Hurtado
2019-08-21 11:03:29 +02:00
parent d7813f6487
commit 450bb48953
3 changed files with 211 additions and 40 deletions
@@ -9,13 +9,23 @@ Feature: Kapow! server reject insert responses with semantic errors.
Given I have a running Kapow! server Given I have a running Kapow! server
When I insert the route: When I insert the route:
| entrypoint | command | """
| /bin/sh -c | ls -la / \| response /body | {
"entrypoint": "/bin/sh -c",
"command": "ls -la / | response /body"
}
"""
Then I get 422 as response code Then I get 422 as response code
And I get "Missing Mandatory Field" as response reason phrase And I get "Missing Mandatory Field" as response reason phrase
And I get the following entity as response body: And I get the following entity as response body:
| missing_mandatory_fields | """
| "url_pattern", "method" | {
"missing_mandatory_fields": [
"url_pattern",
"method"
]
}
"""
Scenario: Error because of wrong route specification. Scenario: Error because of wrong route specification.
If a request contains an invalid expression in the If a request contains an invalid expression in the
@@ -23,8 +33,15 @@ Feature: Kapow! server reject insert responses with semantic errors.
Given I have a running Kapow! server Given I have a running Kapow! server
When I insert the route: When I insert the route:
| method | url_pattern | entrypoint | command | index | """
| GET | /listRootDir | /bin/sh -c | ls -la / \| response /body | 0 | {
"method": "GET",
"url_pattern": "+123--",
"entrypoint": "/bin/sh -c",
"command": "ls -la / | response /body",
"index": 0
}
"""
Then I get 422 as response code Then I get 422 as response code
And I get "Invalid Route Spec" as response reason phrase And I get "Invalid Route Spec" as response reason phrase
And I get an empty response body And I get an empty response body
@@ -35,8 +52,15 @@ Feature: Kapow! server reject insert responses with semantic errors.
Given I have a running Kapow! server Given I have a running Kapow! server
When I insert the route: When I insert the route:
| method | url_pattern | entrypoint | command | index | """
| AVECES | /listRootDir | /bin/sh -c | ls -la / \| response /body | 0 | {
"method": "SOMETIMES",
"url_pattern": "/",
"entrypoint": "/bin/sh -c",
"command": "ls -la / | response /body",
"index": 0
}
"""
Then I get 422 as response code Then I get 422 as response code
And I get "Invalid Data Type" as response reason phrase And I get "Invalid Data Type" as response reason phrase
And I get an empty response body And I get an empty response body
@@ -15,42 +15,120 @@ Feature: Routes auto-ordering after inserting in a Kapow! server.
will be increased by one. will be increased by one.
When I insert the route: When I insert the route:
| method | url_pattern | entrypoint | command | index | """
| GET | /listVarDir | /bin/sh -c | ls -la /var \| response /body | 0 | {
"method": "GET",
"url_pattern": "/listVarDir",
"entrypoint": "/bin/sh -c",
"command": "ls -la /var | response /body",
"index": 0
}
"""
Then I get 200 as response code Then I get 200 as response code
And I get "OK" as response phrase And I get "OK" as response phrase
And I get the following entity as response body: And I get the following entity as response body:
| method | url_pattern | entrypoint | command | index | id | """
| GET | /listVarDir | /bin/sh -c | ls -la /var \| response /body | 0 | * | {
"method": "GET",
"url_pattern": "/listVarDir",
"entrypoint": "/bin/sh -c",
"command": "ls -la /var | response /body",
"index": 0,
"id": "*"
}
"""
When I request a routes listing When I request a routes listing
Then I get 200 as response code Then I get 200 as response code
And I get "OK" as response phrase And I get "OK" as response phrase
And I get a list with the following elements: And I get a list with the following elements:
| method | url_pattern | entrypoint | command | Index | id | """
| GET | /listVarDir | /bin/sh -c | ls -la /var \| response /body | 0 | * | [
| GET | /listRootDir | /bin/sh -c | ls -la / \| response /body | 1 | * | {
| GET | /listDir/{dirname} | /bin/sh -c | ls -la /request/params/dirname \| response /body | 2 | * | "method": "GET",
"url_pattern": "/listVarDir",
"entrypoint": "/bin/sh -c",
"command": "ls -la /var | response /body",
"index": 0,
"id": "*"
},
{
"method": "GET",
"url_pattern": "/listRootDir",
"entrypoint": "/bin/sh -c",
"command": "ls -la / | response /body",
"index": 1,
"id": "*"
},
{
"method": "GET",
"url_pattern": "/listDir/:dirname",
"entrypoint": "/bin/sh -c",
"command": "ls -la /request/params/dirname | response /body",
"index": 2,
"id": "*"
}
]
"""
Scenario: Inserting after the last routes. Scenario: Inserting after the last routes.
After inserting after the last route the previous set After inserting after the last route the previous set
will maintain their relative order and indexes. will maintain their relative order and indexes.
When I insert the route: When I insert the route:
| method | url_pattern | entrypoint | command | index | """
| GET | /listVarDir | /bin/sh -c | ls -la /var \| response /body | 2 | {
"method": "GET",
"url_pattern": "/listVarDir",
"entrypoint": "/bin/sh -c",
"command": "ls -la /var | response /body",
"index": 2
}
"""
Then I get 200 as response code Then I get 200 as response code
And I get "OK" as response phrase And I get "OK" as response phrase
And I get the following entity as response body: And I get the following entity as response body:
| method | url_pattern | entrypoint | command | index | id | """
| GET | /listVarDir | /bin/sh -c | ls -la /var \| response /body | 2 | * | {
"method": "GET",
"url_pattern": "/listVarDir",
"entrypoint": "/bin/sh -c",
"command": "ls -la /var | response /body",
"index": 2,
"id": "*"
}
"""
When I request a routes listing When I request a routes listing
Then I get 200 as response code Then I get 200 as response code
And I get "OK" as response phrase And I get "OK" as response phrase
And I get a list with the following elements: And I get a list with the following elements:
| method | url_pattern | entrypoint | command | Index | id | """
| GET | /listRootDir | /bin/sh -c | ls -la / \| response /body | 0 | * | [
| GET | /listDir/{dirname} | /bin/sh -c | ls -la /request/params/dirname \| response /body | 1 | * | {
| GET | /listVarDir | /bin/sh -c | ls -la /var \| response /body | 2 | * | "method": "GET",
"url_pattern": "/listRootDir",
"entrypoint": "/bin/sh -c",
"command": "ls -la / | response /body",
"index": 0,
"id": "*"
},
{
"method": "GET",
"url_pattern": "/listDir/:dirname",
"entrypoint": "/bin/sh -c",
"command": "ls -la /request/params/dirname | response /body",
"index": 1,
"id": "*"
},
{
"method": "GET",
"url_pattern": "/listVarDir",
"entrypoint": "/bin/sh -c",
"command": "ls -la /var | response /body",
"index": 2,
"id": "*"
}
]
"""
Scenario: Inserting a midst route. Scenario: Inserting a midst route.
After inserting a midst route the previous route set After inserting a midst route the previous route set
@@ -58,18 +136,57 @@ Feature: Routes auto-ordering after inserting in a Kapow! server.
of thefollowing routes will be increased by one. of thefollowing routes will be increased by one.
When I insert the route: When I insert the route:
| method | url_pattern | entrypoint | command | index | """
| GET | /listVarDir | /bin/sh -c | ls -la /var \| response /body | 1 | {
"method": "GET",
"url_pattern": "/listVarDir",
"entrypoint": "/bin/sh -c",
"command": "ls -la /var | response /body",
"index": 1
}
"""
Then I get 200 as response code Then I get 200 as response code
And I get "OK" as response phrase And I get "OK" as response phrase
And I get the following entity as response body: And I get the following entity as response body:
| method | url_pattern | entrypoint | command | index | id | """
| GET | /listVarDir | /bin/sh -c | ls -la /var \| response /body | 1 | * | {
"method": "GET",
"url_pattern": "/listVarDir",
"entrypoint": "/bin/sh -c",
"command": "ls -la /var | response /body",
"index": 1,
"id": "*"
}
"""
When I request a routes listing When I request a routes listing
Then I get 200 as response code Then I get 200 as response code
And I get "OK" as response phrase And I get "OK" as response phrase
And I get a list with the following elements: And I get a list with the following elements:
| method | url_pattern | entrypoint | command | Index | id | """
| GET | /listRootDir | /bin/sh -c | ls -la / \| response /body | 0 | * | [
| GET | /listVarDir | /bin/sh -c | ls -la /var \| response /body | 1 | * | {
| GET | /listDir/{dirname} | /bin/sh -c | ls -la /request/params/dirname \| response /body | 2 | * | "method": "GET",
"url_pattern": "/listRootDir",
"entrypoint": "/bin/sh -c",
"command": "ls -la / | response /body",
"index": 0,
"id": "*"
},
{
"method": "GET",
"url_pattern": "/listVarDir",
"entrypoint": "/bin/sh -c",
"command": "ls -la /var | response /body",
"index": 1,
"id": "*"
},
{
"method": "GET",
"url_pattern": "/listDir/:dirname",
"entrypoint": "/bin/sh -c",
"command": "ls -la /request/params/dirname | response /body",
"index": 2,
"id": "*"
}
]
"""
@@ -14,13 +14,28 @@ Feature: Insert new routes in Kapow! server.
by specifying an index 0 in the request. by specifying an index 0 in the request.
When I insert the route: When I insert the route:
| method | url_pattern | entrypoint | command | index | """
| GET | /listRootDir | /bin/sh -c | ls -la / \| response /body | 0 | {
"method": "GET",
"url_pattern": "/listVarDir",
"entrypoint": "/bin/sh -c",
"command": "ls -la /var | response /body",
"index": 0
}
"""
Then I get 200 as response code Then I get 200 as response code
And I get "OK" as response reason phrase And I get "OK" as response reason phrase
And I get the following entity as response body: And I get the following entity as response body:
| method | url_pattern | entrypoint | command | index | id | """
| GET | /listRootDir | /bin/sh -c | ls -la / \| response /body | 0 | * | {
"method": "GET",
"url_pattern": "/listVarDir",
"entrypoint": "/bin/sh -c",
"command": "ls -la /var | response /body",
"index": 0,
"id": "*"
}
"""
Scenario: Insert a route in the middle. Scenario: Insert a route in the middle.
A route can be inserted in the middle of the list A route can be inserted in the middle of the list
@@ -28,10 +43,25 @@ Feature: Insert new routes in Kapow! server.
index in the request. index in the request.
When I insert the route: When I insert the route:
| method | url_pattern | entrypoint | command | index | """
| GET | /listRootDir | /bin/sh -c | ls -la / \| response /body | 1 | {
"method": "GET",
"url_pattern": "/listVarDir",
"entrypoint": "/bin/sh -c",
"command": "ls -la /var | response /body",
"index": 1
}
"""
Then I get 200 as response code Then I get 200 as response code
And I get "OK" as response reason phrase And I get "OK" as response reason phrase
And I get the following entity as response body: And I get the following entity as response body:
| method | url_pattern | entrypoint | command | index | id | """
| GET | /listRootDir | /bin/sh -c | ls -la / \| response /body | 1 | * | {
"method": "GET",
"url_pattern": "/listVarDir",
"entrypoint": "/bin/sh -c",
"command": "ls -la /var | response /body",
"index": 1,
"id": "*"
}
"""