brine-dsl 0.8.1 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.ruby-gemset +1 -0
- data/Gemfile.lock +24 -75
- data/Rakefile +5 -29
- data/brine-dsl.gemspec +3 -5
- data/feature_setup.rb +17 -0
- data/lib/brine/requester.rb +27 -2
- data/lib/brine/step_definitions/request_construction.rb +5 -0
- data/lib/brine/test_steps.rb +8 -2
- data/lib/brine/type_checks.rb +2 -1
- data/lib/brine/util.rb +13 -3
- metadata +6 -145
- data/.gitignore +0 -3
- data/.travis.yml +0 -11
- data/CHANGELOG.md +0 -170
- data/Guardfile +0 -12
- data/LICENSE +0 -21
- data/README.adoc +0 -29
- data/config/cucumber.yml +0 -2
- data/docs/build.gradle +0 -19
- data/docs/cookbook.html +0 -643
- data/docs/gradle/wrapper/gradle-wrapper.jar +0 -0
- data/docs/gradle/wrapper/gradle-wrapper.properties +0 -6
- data/docs/gradlew +0 -172
- data/docs/gradlew.bat +0 -84
- data/docs/guide.html +0 -1220
- data/docs/index.html +0 -486
- data/docs/specs.html +0 -2066
- data/docs/src/cookbook.adoc +0 -160
- data/docs/src/guide.adoc +0 -524
- data/docs/src/index.adoc +0 -28
- data/docs/src/spec.erb +0 -121
- data/docs/src/specs.adoc +0 -37
- data/features/argument_transforms/boolean.feature +0 -37
- data/features/argument_transforms/datetime.feature +0 -45
- data/features/argument_transforms/integer.feature +0 -41
- data/features/argument_transforms/list.feature +0 -46
- data/features/argument_transforms/object.feature +0 -66
- data/features/argument_transforms/quoted.feature +0 -41
- data/features/argument_transforms/regex.feature +0 -40
- data/features/argument_transforms/template.feature +0 -46
- data/features/argument_transforms/whitespace.feature +0 -51
- data/features/assertions/is_a_valid.feature +0 -184
- data/features/assertions/is_empty.feature +0 -67
- data/features/assertions/is_equal_to.feature +0 -60
- data/features/assertions/is_including.feature +0 -34
- data/features/assertions/is_matching.feature +0 -35
- data/features/assertions/is_of_length.feature +0 -43
- data/features/assignment/parameter.feature +0 -20
- data/features/assignment/random.feature +0 -25
- data/features/assignment/response_attribute.feature +0 -33
- data/features/assignment/timestamp.feature +0 -33
- data/features/deprecations/replaced_with.feature +0 -53
- data/features/request_construction/basic.feature +0 -29
- data/features/request_construction/body.feature +0 -26
- data/features/request_construction/clearing.feature +0 -46
- data/features/request_construction/headers.feature +0 -94
- data/features/request_construction/params.feature +0 -60
- data/features/resource_cleanup/cleanup.feature +0 -86
- data/features/selectors/all.feature +0 -55
- data/features/selectors/any.feature +0 -48
- data/features/step_definitions/test_steps.rb +0 -5
- data/features/support/env.rb +0 -10
- data/tutorial/missing.feature +0 -5
- data/tutorial/post_matching.feature +0 -12
- data/tutorial/post_status.feature +0 -10
- data/tutorial/support/env.rb +0 -2
data/docs/src/index.adoc
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
= Brine
|
2
|
-
Matt Whipple <http://github.com/mwhipple[@mwhipple]>
|
3
|
-
:description: A Cucumber-based DSL for testing REST APIs
|
4
|
-
:keywords: Brine, Cucumber, REST, DSL
|
5
|
-
|
6
|
-
Cucumber DSL for testing REST APIs
|
7
|
-
|
8
|
-
== Overview
|
9
|
-
|
10
|
-
The documentation should provide the background information to
|
11
|
-
get started using Brine and a framework for figuring out specific details.
|
12
|
-
The focus of guides will be on concepts and high level information while
|
13
|
-
more comprehensive and finer grained information will be provided by
|
14
|
-
specifications and source. Recipes will be provided for problems which
|
15
|
-
are common, interesting, or anything anyone wants to contribute :).
|
16
|
-
|
17
|
-
== Documents
|
18
|
-
|
19
|
-
link:guide.html[icon:book[] User Guide]::
|
20
|
-
A guide to writing specifications using the Brine provided DSL.
|
21
|
-
|
22
|
-
link:specs.html[icon:cogs[] Specification]::
|
23
|
-
The Gherkin specification for all of Brine's features.
|
24
|
-
|
25
|
-
link:cookbook.html[icon:cutlery[] Cookbook]::
|
26
|
-
Solutions to some problems which Brine does not solve directly.
|
27
|
-
|
28
|
-
_TODO: The current Cookbook name should be qualified to match its scope_
|
data/docs/src/spec.erb
DELETED
@@ -1,121 +0,0 @@
|
|
1
|
-
<%# TODO: Indentation can't be used because of significance to adoc...comment liberally or abuse tags %>
|
2
|
-
<%# TODO: Add a lot of CSS classes so the output can be matched back to this template %>
|
3
|
-
|
4
|
-
=== [feature name]#<%= feature['name'] %>#
|
5
|
-
|
6
|
-
<%if feature.key?('description') %>
|
7
|
-
<%# FIXME: Styling doesn't work here and description seems to contain background %>
|
8
|
-
<%= feature['description'] %>
|
9
|
-
<% end %>
|
10
|
-
|
11
|
-
<%if feature.key?('background') %>
|
12
|
-
==== [background name]#<%= feature['background']['name'] %>#
|
13
|
-
|
14
|
-
<%if feature['background'].key?('description') %>
|
15
|
-
[background description]#<%= feature['background']['description'] %>#
|
16
|
-
<% end %>
|
17
|
-
|
18
|
-
<%if feature['background'].key?('steps') %>
|
19
|
-
[.step-list]
|
20
|
-
<% feature['background']['steps'].each do |step| %>
|
21
|
-
* *<%= step['keyword'].strip %>* <%= step['name'] %>
|
22
|
-
|
23
|
-
<%if step.key?('doc_string') %>
|
24
|
-
[source,gherkin]
|
25
|
-
----
|
26
|
-
<%= step['doc_string']['value'] %>
|
27
|
-
----
|
28
|
-
<% end %>
|
29
|
-
|
30
|
-
<%if step.key?('rows') %>
|
31
|
-
+<% if step['rows'].first && step['rows'].first.key?('cols') %>
|
32
|
-
[<%= step['rows'].first['cols'] %>]
|
33
|
-
<% end %>
|
34
|
-
|
35
|
-
|====
|
36
|
-
<% step['rows'].each_with_index do |row, index| %>
|
37
|
-
<% row['cells'].each_with_index do |cell, i| %>
|
38
|
-
<% if row.key?('cell-styles') && row['cell-styles'].length > i %>
|
39
|
-
<%= row['cell-styles'][i] %>
|
40
|
-
<% end %>
|
41
|
-
| <%= cell %>
|
42
|
-
<% end %>
|
43
|
-
<% end %>|====
|
44
|
-
<% end %>
|
45
|
-
<% end %>
|
46
|
-
<% end %>
|
47
|
-
|
48
|
-
<%if feature['background'].key?('examples')
|
49
|
-
example = feature['background']['examples'] %>
|
50
|
-
|
51
|
-
==== EX: <%= example['keyword'].strip %> <%= example['name'] %>
|
52
|
-
|
53
|
-
<% if example['rows'].first && example['rows'].first.key?('cols') %>
|
54
|
-
[<%= example['rows'].first['cols'] %>]
|
55
|
-
<% end %>
|
56
|
-
|
57
|
-
|====
|
58
|
-
<% example['rows'].each_with_index do |row, index| %>
|
59
|
-
<% row['cells'].each_with_index do |cell, i| %>
|
60
|
-
<% if row.key?('cell-styles') && row['cell-styles'].length > i %>
|
61
|
-
<%= row['cell-styles'][i] %>
|
62
|
-
<% end %>
|
63
|
-
| <%= cell %>
|
64
|
-
<% end %>
|
65
|
-
<% if index == 0 %>
|
66
|
-
<% end %>
|
67
|
-
<% end %>
|
68
|
-
|====
|
69
|
-
<% end %>
|
70
|
-
<% end %>
|
71
|
-
|
72
|
-
<%if feature.key?('scenarios') %>
|
73
|
-
<% feature['scenarios'].each do |scenario| %>
|
74
|
-
==== [scenario name]#<%= scenario['name'] %>#
|
75
|
-
<%if scenario.key?('description') %>
|
76
|
-
<%= scenario['description'] %>
|
77
|
-
<% end %>
|
78
|
-
<%if scenario.key?('steps') %>[.step-list]<% scenario['steps'].each do |step| %>
|
79
|
-
* *<%= step['keyword'].strip %>* <%= step['name'] %>
|
80
|
-
<%if step.key?('doc_string') %>
|
81
|
-
[source,gherkin]
|
82
|
-
----
|
83
|
-
<%= step['doc_string']['value'] %>
|
84
|
-
----
|
85
|
-
<% end %>
|
86
|
-
<%if step.key?('rows') %>
|
87
|
-
+<% if step['rows'].first && step['rows'].first.key?('cols') %>
|
88
|
-
[<%= step['rows'].first['cols'] %>]
|
89
|
-
<% end %>
|
90
|
-
|====
|
91
|
-
<% step['rows'].each_with_index do |row, index| %>
|
92
|
-
<% row['cells'].each_with_index do |cell, i| %>
|
93
|
-
<% if row.key?('cell-styles') && row['cell-styles'].length > i %>
|
94
|
-
<%= row['cell-styles'][i] %>
|
95
|
-
<% end %>
|
96
|
-
| <%= cell %>
|
97
|
-
<% end %>
|
98
|
-
<% end %>|====
|
99
|
-
<% end %>
|
100
|
-
<% end %>
|
101
|
-
<% end %>
|
102
|
-
|
103
|
-
<%if scenario.key?('examples')
|
104
|
-
example = scenario['examples'] %>
|
105
|
-
===== [example name]#<%= example['keyword'].strip %> <%= example['name'] %>#
|
106
|
-
|
107
|
-
<% if example['rows'].first && example['rows'].first.key?('cols') %>
|
108
|
-
[<%= example['rows'].first['cols'] %>]
|
109
|
-
<% end %>
|
110
|
-
|====
|
111
|
-
<% example['rows'].each_with_index do |row, index| %>
|
112
|
-
<% row['cells'].each_with_index do |cell, i| %>
|
113
|
-
<% if row.key?('cell-styles') && row['cell-styles'].length > i %><%= row['cell-styles'][i] %><% end %>
|
114
|
-
| <%= cell %>
|
115
|
-
<% end %> <%# cell %>
|
116
|
-
<% if index == 0 %>
|
117
|
-
<% end %>
|
118
|
-
<% end %>|====
|
119
|
-
<% end %>
|
120
|
-
<% end %>
|
121
|
-
<% end %>
|
data/docs/src/specs.adoc
DELETED
@@ -1,37 +0,0 @@
|
|
1
|
-
= icon:cogs[] Brine Specifications
|
2
|
-
Matt Whipple <http://github.com/mwhipple[@mwhipple]>
|
3
|
-
:description: Specifications for Brine
|
4
|
-
:keywords: Brine, Cucumber, RESt, DSL
|
5
|
-
|
6
|
-
== Request Construction
|
7
|
-
|
8
|
-
gherkin::../../features/request_construction/basic.feature[spec.erb]
|
9
|
-
gherkin::../../features/request_construction/body.feature[spec.erb]
|
10
|
-
gherkin::../../features/request_construction/params.feature[spec.erb]
|
11
|
-
gherkin::../../features/request_construction/headers.feature[spec.erb]
|
12
|
-
gherkin::../../features/request_construction/clearing.feature[spec.erb]
|
13
|
-
|
14
|
-
== Resource Cleanup
|
15
|
-
|
16
|
-
gherkin::../../features/resource_cleanup/cleanup.feature[spec.erb]
|
17
|
-
|
18
|
-
== Assignment
|
19
|
-
|
20
|
-
gherkin::../../features/assignment/parameter.feature[spec.erb]
|
21
|
-
gherkin::../../features/assignment/random.feature[spec.erb]
|
22
|
-
gherkin::../../features/assignment/timestamp.feature[spec.erb]
|
23
|
-
gherkin::../../features/assignment/response_attribute.feature[spec.erb]
|
24
|
-
|
25
|
-
== Selection
|
26
|
-
|
27
|
-
gherkin::../../features/selectors/any.feature[spec.erb]
|
28
|
-
gherkin::../../features/selectors/all.feature[spec.erb]
|
29
|
-
|
30
|
-
== Assertion
|
31
|
-
|
32
|
-
gherkin::../../features/assertions/is_equal_to.feature[spec.erb]
|
33
|
-
gherkin::../../features/assertions/is_matching.feature[spec.erb]
|
34
|
-
gherkin::../../features/assertions/is_including.feature[spec.erb]
|
35
|
-
gherkin::../../features/assertions/is_empty.feature[spec.erb]
|
36
|
-
gherkin::../../features/assertions/is_of_length.feature[spec.erb]
|
37
|
-
gherkin::../../features/assertions/is_a_valid.feature[spec.erb]
|
@@ -1,37 +0,0 @@
|
|
1
|
-
Feature: An argument that could represent a boolean value will be
|
2
|
-
transformed into a boolean type.
|
3
|
-
|
4
|
-
Scenario Outline: Assorted basic inputs are provided.
|
5
|
-
Given a file named "features/transform_boolean.feature" with:
|
6
|
-
"""
|
7
|
-
|
8
|
-
Feature: Transform boolean arguments.
|
9
|
-
Scenario: Docstring simple value.
|
10
|
-
When the response body is assigned:
|
11
|
-
\"\"\"
|
12
|
-
<input>
|
13
|
-
\"\"\"
|
14
|
-
Then the response body as JSON is:
|
15
|
-
\"\"\"
|
16
|
-
'<expected>'
|
17
|
-
\"\"\"
|
18
|
-
|
19
|
-
Scenario: Inline simple value.
|
20
|
-
When the response body is assigned `<input>`
|
21
|
-
Then the response body as JSON is:
|
22
|
-
\"\"\"
|
23
|
-
'<expected>'
|
24
|
-
\"\"\"
|
25
|
-
|
26
|
-
"""
|
27
|
-
When I run `cucumber --strict features/transform_boolean.feature`
|
28
|
-
Then the output should contain:
|
29
|
-
"""
|
30
|
-
2 passed
|
31
|
-
"""
|
32
|
-
And it should pass
|
33
|
-
|
34
|
-
Examples:
|
35
|
-
| input | expected |
|
36
|
-
| true | true |
|
37
|
-
| false | false |
|
@@ -1,45 +0,0 @@
|
|
1
|
-
Feature: An argument that could represent a date/time value will be
|
2
|
-
transformed into a time type.
|
3
|
-
|
4
|
-
Scenario: Assorted basic inputs are provided.
|
5
|
-
Given a file named "features/transform_datetime.feature" with:
|
6
|
-
"""
|
7
|
-
|
8
|
-
Feature: Transform date/time arguments.
|
9
|
-
Scenario: Docstring datetime is serialized properly.
|
10
|
-
When the response body is assigned:
|
11
|
-
\"\"\"
|
12
|
-
2017-01-01T09:00:00Z
|
13
|
-
\"\"\"
|
14
|
-
Then the response body as JSON is:
|
15
|
-
\"\"\"
|
16
|
-
'"2017-01-01 09:00:00 UTC"'
|
17
|
-
\"\"\"
|
18
|
-
|
19
|
-
Scenario: Inline datetime is serialized properly.
|
20
|
-
When the response body is assigned `2017-01-01T09:00:00Z`
|
21
|
-
Then the response body as JSON is:
|
22
|
-
\"\"\"
|
23
|
-
'"2017-01-01 09:00:00 UTC"'
|
24
|
-
\"\"\"
|
25
|
-
|
26
|
-
Scenario: Value Comparison
|
27
|
-
When `now` is assigned a timestamp
|
28
|
-
And `then` is assigned `2017-01-01T12:00:00Z`
|
29
|
-
Then the value of `{{then}}` is less than `{{now}}`
|
30
|
-
|
31
|
-
Scenario: Child Comparison
|
32
|
-
When `now` is assigned a timestamp
|
33
|
-
And the response body is assigned:
|
34
|
-
\"\"\"
|
35
|
-
{"my_timestamp": "{{now}}"}
|
36
|
-
\"\"\"
|
37
|
-
Then the value of the response body child `my_timestamp` is greater than `2017-01-01T12:00:00Z`
|
38
|
-
|
39
|
-
"""
|
40
|
-
When I run `cucumber --strict features/transform_datetime.feature`
|
41
|
-
Then the output should contain:
|
42
|
-
"""
|
43
|
-
4 passed
|
44
|
-
"""
|
45
|
-
And it should pass
|
@@ -1,41 +0,0 @@
|
|
1
|
-
Feature: An argument that could represent an integer will be
|
2
|
-
transformed into an integer type.
|
3
|
-
|
4
|
-
Scenario Outline: Assorted basic inputs are provided.
|
5
|
-
Given a file named "features/transform_integer.feature" with:
|
6
|
-
"""
|
7
|
-
|
8
|
-
Feature: Transform integer arguments.
|
9
|
-
Scenario: Docstring simple value.
|
10
|
-
When the response body is assigned:
|
11
|
-
\"\"\"
|
12
|
-
<input>
|
13
|
-
\"\"\"
|
14
|
-
Then the response body as JSON is:
|
15
|
-
\"\"\"
|
16
|
-
'<expected>'
|
17
|
-
\"\"\"
|
18
|
-
|
19
|
-
Scenario: Inline simple value.
|
20
|
-
When the response body is assigned `<input>`
|
21
|
-
Then the response body as JSON is:
|
22
|
-
\"\"\"
|
23
|
-
'<expected>'
|
24
|
-
\"\"\"
|
25
|
-
|
26
|
-
"""
|
27
|
-
When I run `cucumber --strict features/transform_integer.feature`
|
28
|
-
Then the output should contain:
|
29
|
-
"""ar
|
30
|
-
2 passed
|
31
|
-
"""
|
32
|
-
And it should pass
|
33
|
-
|
34
|
-
Examples:
|
35
|
-
| input | expected |
|
36
|
-
| 0 | 0 |
|
37
|
-
| -0 | 0 |
|
38
|
-
| 10 | 10 |
|
39
|
-
| -10 | -10 |
|
40
|
-
| 123456789123456789 | 123456789123456789 |
|
41
|
-
| -123456789123456789 | -123456789123456789 |
|
@@ -1,46 +0,0 @@
|
|
1
|
-
Feature: An argument that could represent a JSON list will be
|
2
|
-
transformed into a list whose elements will be also be transformed.
|
3
|
-
|
4
|
-
Scenario Outline: Assorted basic inputs are provided.
|
5
|
-
Given a file named "features/transform_list.feature" with:
|
6
|
-
"""
|
7
|
-
|
8
|
-
Feature: Transform list arguments.
|
9
|
-
Scenario: Docstring simple list.
|
10
|
-
When the response body is assigned:
|
11
|
-
\"\"\"
|
12
|
-
<input>
|
13
|
-
\"\"\"
|
14
|
-
Then the response body as JSON is:
|
15
|
-
\"\"\"
|
16
|
-
'<expected>'
|
17
|
-
\"\"\"
|
18
|
-
|
19
|
-
Scenario: Inline simple list.
|
20
|
-
When the response body is assigned `<input>`
|
21
|
-
Then the response body as JSON is:
|
22
|
-
\"\"\"
|
23
|
-
'<expected>'
|
24
|
-
\"\"\"
|
25
|
-
|
26
|
-
"""
|
27
|
-
When I run `cucumber --strict features/transform_list.feature`
|
28
|
-
Then the output should contain:
|
29
|
-
"""
|
30
|
-
2 passed
|
31
|
-
"""
|
32
|
-
And it should pass
|
33
|
-
|
34
|
-
Examples:
|
35
|
-
| input | expected |
|
36
|
-
| [] | [] |
|
37
|
-
| ["a", "b"] | ["a","b"] |
|
38
|
-
| ["a" , "b" ] | ["a","b"] |
|
39
|
-
| [" a", " b "] | [" a"," b "] |
|
40
|
-
| [true, "false"] | [true,"false"] |
|
41
|
-
| [1,-3,"-5"] | [1,-3,"-5"] |
|
42
|
-
| ["foo,bar","baz"] | ["foo,bar","baz"] |
|
43
|
-
| ["foo,bar,baz"] | ["foo,bar,baz"] |
|
44
|
-
| ["foo\\"","bar"] | ["foo\\"","bar"] |
|
45
|
-
| ["fo\\"o\\",bar","baz"] | ["fo\\"o\\",bar","baz"] |
|
46
|
-
| [{"i":1},{"i":2}, "h"] | [{"i":1},{"i":2},"h"] |
|
@@ -1,66 +0,0 @@
|
|
1
|
-
Feature: An argument that could represent a JSON object will be
|
2
|
-
transformed into an object whose elements will also be transformed.
|
3
|
-
|
4
|
-
Scenario Outline: Assorted basic inputs are provided.
|
5
|
-
Given a file named "features/transform_object.feature" with:
|
6
|
-
"""
|
7
|
-
|
8
|
-
Feature: Transform object arguments.
|
9
|
-
Scenario: Docstring simple object.
|
10
|
-
When the response body is assigned:
|
11
|
-
\"\"\"
|
12
|
-
<input>
|
13
|
-
\"\"\"
|
14
|
-
Then the response body as JSON is:
|
15
|
-
\"\"\"
|
16
|
-
'<expected>'
|
17
|
-
\"\"\"
|
18
|
-
|
19
|
-
Scenario: Inline simple object.
|
20
|
-
When the response body is assigned `<input>`
|
21
|
-
Then the response body as JSON is:
|
22
|
-
\"\"\"
|
23
|
-
'<expected>'
|
24
|
-
\"\"\"
|
25
|
-
|
26
|
-
"""
|
27
|
-
When I run `cucumber features/transform_object.feature`
|
28
|
-
Then the output should contain:
|
29
|
-
"""
|
30
|
-
2 passed
|
31
|
-
"""
|
32
|
-
And it should pass
|
33
|
-
|
34
|
-
Examples:
|
35
|
-
| input | expected |
|
36
|
-
| {} | {} |
|
37
|
-
| {"a":1} | {"a":1} |
|
38
|
-
| {"foo":"bar", "num":1, "list": ["1", 2, true]} | {"foo":"bar","num":1,"list":["1",2,true]} |
|
39
|
-
| {"foo": {"bar":{ "num":1, "list": ["1", 2, true]}}} | {"foo":{"bar":{"num":1,"list":["1",2,true]}}} |
|
40
|
-
| {"foo": "\"list\": [\"1\", 2, true]"} | {"foo":"\\"list\\": [\\"1\\", 2, true]"} |
|
41
|
-
|
42
|
-
Scenario: Passed an Object split over multiple lines
|
43
|
-
Given a file named "features/transform_object_splitline.feature" with:
|
44
|
-
"""
|
45
|
-
|
46
|
-
Feature: Using an object argument split over multiple lines
|
47
|
-
Scenario: Object split over lines
|
48
|
-
When the response body is assigned:
|
49
|
-
\"\"\"
|
50
|
-
{
|
51
|
-
"foo":"bar"
|
52
|
-
}
|
53
|
-
\"\"\"
|
54
|
-
Then the value of the response body is equal to:
|
55
|
-
\"\"\"
|
56
|
-
{"foo":"bar"}
|
57
|
-
\"\"\"
|
58
|
-
|
59
|
-
"""
|
60
|
-
When I run `cucumber --strict features/transform_object_splitline.feature`
|
61
|
-
Then the output should contain:
|
62
|
-
"""
|
63
|
-
1 passed
|
64
|
-
"""
|
65
|
-
And it should pass
|
66
|
-
|
@@ -1,41 +0,0 @@
|
|
1
|
-
Feature: An argument that is quoted will be (not) transformed into
|
2
|
-
into a string, regardless of any more specific data type the
|
3
|
-
quoted value may resemble.
|
4
|
-
|
5
|
-
Scenario Outline: Assorted basic inputs are provided.
|
6
|
-
Given a file named "features/transform_quoted.feature" with:
|
7
|
-
"""
|
8
|
-
|
9
|
-
Feature: Transform quoted arguments.
|
10
|
-
Scenario: Docstring simple value.
|
11
|
-
When the response body is assigned:
|
12
|
-
\"\"\"
|
13
|
-
<input>
|
14
|
-
\"\"\"
|
15
|
-
Then the response body as JSON is:
|
16
|
-
\"\"\"
|
17
|
-
'<expected>'
|
18
|
-
\"\"\"
|
19
|
-
|
20
|
-
Scenario: Inline simple value.
|
21
|
-
When the response body is assigned `<input>`
|
22
|
-
Then the response body as JSON is:
|
23
|
-
\"\"\"
|
24
|
-
'<expected>'
|
25
|
-
\"\"\"
|
26
|
-
|
27
|
-
"""
|
28
|
-
When I run `cucumber --strict features/transform_quoted.feature`
|
29
|
-
Then the output should contain:
|
30
|
-
"""
|
31
|
-
2 passed
|
32
|
-
"""
|
33
|
-
And it should pass
|
34
|
-
|
35
|
-
Examples:
|
36
|
-
| input | expected |
|
37
|
-
| "true" | "true" |
|
38
|
-
| "123" | "123" |
|
39
|
-
| " -123 " | " -123 " |
|
40
|
-
| "["foo","bar"]" | "[\"foo\",\"bar\"]" |
|
41
|
-
| "{"foo":"bar"}" | "{\"foo\":\"bar\"}" |
|