cuke_modeler 3.13.0 → 3.14.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -1
- data/lib/cuke_modeler/adapters/gherkin_20_adapter.rb +13 -0
- data/lib/cuke_modeler/adapters/gherkin_9_adapter.rb +13 -0
- data/lib/cuke_modeler/containing.rb +13 -13
- data/lib/cuke_modeler/sourceable.rb +4 -1
- data/lib/cuke_modeler/version.rb +1 -1
- data/testing/cucumber/features/modeling/background_modeling.feature +28 -5
- data/testing/cucumber/features/modeling/cell_modeling.feature +46 -0
- data/testing/cucumber/features/modeling/comment_modeling.feature +20 -0
- data/testing/cucumber/features/modeling/doc_string_modeling.feature +26 -0
- data/testing/cucumber/features/modeling/example_modeling.feature +25 -0
- data/testing/cucumber/features/modeling/feature_modeling.feature +7 -0
- data/testing/cucumber/features/modeling/outline_modeling.feature +26 -1
- data/testing/cucumber/features/modeling/row_modeling.feature +23 -0
- data/testing/cucumber/features/modeling/rule_modeling.feature +21 -0
- data/testing/cucumber/features/modeling/scenario_modeling.feature +22 -0
- data/testing/cucumber/features/modeling/step_modeling.feature +22 -0
- data/testing/cucumber/features/modeling/table_modeling.feature +24 -0
- data/testing/cucumber/features/modeling/tag_modeling.feature +20 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 42e13fd543b846c0dfd1120e67c157aefb71eeeae7bc68894686813368aace1a
|
4
|
+
data.tar.gz: 676f7198e3746318b0f4a2d79c3a8c410ebcbab00b3e543dbb225cfaa8f4ee58
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8500092bdeeb98f81134b8e3302ddf796acd867ccd1324b09d2d75103902b6a926d1220ddbaf08aea98624fe64f1246804868fee21e56a9ec24766c0695455f3
|
7
|
+
data.tar.gz: 939fc0d59e4cf3cc194ac28f51a140c928e4ce61f493cc21b03b9a9140c80981fc9e25dbadaa46a4c09f187b8610f37d76a52b708f2ca6434500b2f7324bca7c
|
data/CHANGELOG.md
CHANGED
@@ -8,6 +8,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
8
8
|
|
9
9
|
Nothing yet...
|
10
10
|
|
11
|
+
## [3.14.0] - 2021-11-22
|
12
|
+
|
13
|
+
### Added
|
14
|
+
- All models for Gherkin elements now track the column number from which they originate in a source file.
|
15
|
+
|
11
16
|
## [3.13.0] - 2021-09-25
|
12
17
|
|
13
18
|
### Added
|
@@ -408,7 +413,8 @@ Nothing yet...
|
|
408
413
|
- Initial release
|
409
414
|
|
410
415
|
|
411
|
-
[Unreleased]: https://github.com/enkessler/cuke_modeler/compare/v3.
|
416
|
+
[Unreleased]: https://github.com/enkessler/cuke_modeler/compare/v3.14.0...HEAD
|
417
|
+
[3.14.0]: https://github.com/enkessler/cuke_modeler/compare/v3.13.0...v3.14.0
|
412
418
|
[3.13.0]: https://github.com/enkessler/cuke_modeler/compare/v3.12.0...v3.13.0
|
413
419
|
[3.12.0]: https://github.com/enkessler/cuke_modeler/compare/v3.11.0...v3.12.0
|
414
420
|
[3.11.0]: https://github.com/enkessler/cuke_modeler/compare/v3.10.0...v3.11.0
|
@@ -39,6 +39,7 @@ module CukeModeler
|
|
39
39
|
adapted_feature['name'] = feature_ast.name
|
40
40
|
adapted_feature['description'] = feature_ast.description
|
41
41
|
adapted_feature['line'] = feature_ast.location.line
|
42
|
+
adapted_feature['column'] = feature_ast.location.column
|
42
43
|
|
43
44
|
adapted_feature['elements'] = adapt_child_elements(feature_ast)
|
44
45
|
adapted_feature['tags'] = adapt_tags(feature_ast)
|
@@ -59,6 +60,7 @@ module CukeModeler
|
|
59
60
|
adapted_background['name'] = background_ast.background.name
|
60
61
|
adapted_background['description'] = background_ast.background.description
|
61
62
|
adapted_background['line'] = background_ast.background.location.line
|
63
|
+
adapted_background['column'] = background_ast.background.location.column
|
62
64
|
|
63
65
|
adapted_background['steps'] = adapt_steps(background_ast.background)
|
64
66
|
|
@@ -79,6 +81,7 @@ module CukeModeler
|
|
79
81
|
adapted_rule['name'] = rule_ast.rule.name
|
80
82
|
adapted_rule['description'] = rule_ast.rule.description
|
81
83
|
adapted_rule['line'] = rule_ast.rule.location.line
|
84
|
+
adapted_rule['column'] = rule_ast.rule.location.column
|
82
85
|
|
83
86
|
adapted_rule['elements'] = adapt_child_elements(rule_ast.rule)
|
84
87
|
adapted_rule['tags'] = adapt_tags(rule_ast.rule)
|
@@ -100,6 +103,7 @@ module CukeModeler
|
|
100
103
|
adapted_scenario['name'] = test_ast.scenario.name
|
101
104
|
adapted_scenario['description'] = test_ast.scenario.description
|
102
105
|
adapted_scenario['line'] = test_ast.scenario.location.line
|
106
|
+
adapted_scenario['column'] = test_ast.scenario.location.column
|
103
107
|
|
104
108
|
adapted_scenario['tags'] = adapt_tags(test_ast.scenario)
|
105
109
|
adapted_scenario['steps'] = adapt_steps(test_ast.scenario)
|
@@ -122,6 +126,7 @@ module CukeModeler
|
|
122
126
|
adapted_outline['name'] = test_ast.scenario.name
|
123
127
|
adapted_outline['description'] = test_ast.scenario.description
|
124
128
|
adapted_outline['line'] = test_ast.scenario.location.line
|
129
|
+
adapted_outline['column'] = test_ast.scenario.location.column
|
125
130
|
|
126
131
|
adapted_outline['tags'] = adapt_tags(test_ast.scenario)
|
127
132
|
adapted_outline['steps'] = adapt_steps(test_ast.scenario)
|
@@ -143,6 +148,7 @@ module CukeModeler
|
|
143
148
|
adapted_example['keyword'] = example_ast.keyword
|
144
149
|
adapted_example['name'] = example_ast.name
|
145
150
|
adapted_example['line'] = example_ast.location.line
|
151
|
+
adapted_example['column'] = example_ast.location.column
|
146
152
|
adapted_example['description'] = example_ast.description
|
147
153
|
|
148
154
|
adapted_example['rows'] = []
|
@@ -166,6 +172,7 @@ module CukeModeler
|
|
166
172
|
|
167
173
|
adapted_tag['name'] = tag_ast.name
|
168
174
|
adapted_tag['line'] = tag_ast.location.line
|
175
|
+
adapted_tag['column'] = tag_ast.location.column
|
169
176
|
|
170
177
|
adapted_tag
|
171
178
|
end
|
@@ -179,6 +186,7 @@ module CukeModeler
|
|
179
186
|
|
180
187
|
adapted_comment['text'] = comment_ast.text
|
181
188
|
adapted_comment['line'] = comment_ast.location.line
|
189
|
+
adapted_comment['column'] = comment_ast.location.column
|
182
190
|
|
183
191
|
adapted_comment
|
184
192
|
end
|
@@ -195,6 +203,7 @@ module CukeModeler
|
|
195
203
|
adapted_step['keyword'] = step_ast.keyword
|
196
204
|
adapted_step['name'] = step_ast.text
|
197
205
|
adapted_step['line'] = step_ast.location.line
|
206
|
+
adapted_step['column'] = step_ast.location.column
|
198
207
|
|
199
208
|
if step_ast.doc_string
|
200
209
|
adapted_step['doc_string'] = adapt_doc_string(step_ast.doc_string)
|
@@ -215,6 +224,7 @@ module CukeModeler
|
|
215
224
|
adapted_doc_string['value'] = doc_string_ast.content
|
216
225
|
adapted_doc_string['content_type'] = doc_string_ast.media_type
|
217
226
|
adapted_doc_string['line'] = doc_string_ast.location.line
|
227
|
+
adapted_doc_string['column'] = doc_string_ast.location.column
|
218
228
|
|
219
229
|
adapted_doc_string
|
220
230
|
end
|
@@ -232,6 +242,7 @@ module CukeModeler
|
|
232
242
|
adapted_step_table['rows'] << adapt_table_row(row)
|
233
243
|
end
|
234
244
|
adapted_step_table['line'] = step_table_ast.location.line
|
245
|
+
adapted_step_table['column'] = step_table_ast.location.column
|
235
246
|
|
236
247
|
adapted_step_table
|
237
248
|
end
|
@@ -245,6 +256,7 @@ module CukeModeler
|
|
245
256
|
clear_child_elements(adapted_table_row, [[:cells]])
|
246
257
|
|
247
258
|
adapted_table_row['line'] = table_row_ast.location.line
|
259
|
+
adapted_table_row['column'] = table_row_ast.location.column
|
248
260
|
|
249
261
|
adapted_table_row['cells'] = []
|
250
262
|
table_row_ast.cells.each do |row|
|
@@ -263,6 +275,7 @@ module CukeModeler
|
|
263
275
|
|
264
276
|
adapted_cell['value'] = cell_ast.value
|
265
277
|
adapted_cell['line'] = cell_ast.location.line
|
278
|
+
adapted_cell['column'] = cell_ast.location.column
|
266
279
|
|
267
280
|
adapted_cell
|
268
281
|
end
|
@@ -40,6 +40,7 @@ module CukeModeler
|
|
40
40
|
adapted_feature['name'] = feature_ast[:name]
|
41
41
|
adapted_feature['description'] = feature_ast[:description] || ''
|
42
42
|
adapted_feature['line'] = feature_ast[:location][:line]
|
43
|
+
adapted_feature['column'] = feature_ast[:location][:column]
|
43
44
|
|
44
45
|
adapted_feature['elements'] = adapt_child_elements(feature_ast)
|
45
46
|
adapted_feature['tags'] = adapt_tags(feature_ast)
|
@@ -60,6 +61,7 @@ module CukeModeler
|
|
60
61
|
adapted_background['name'] = background_ast[:background][:name]
|
61
62
|
adapted_background['description'] = background_ast[:background][:description] || ''
|
62
63
|
adapted_background['line'] = background_ast[:background][:location][:line]
|
64
|
+
adapted_background['column'] = background_ast[:background][:location][:column]
|
63
65
|
|
64
66
|
adapted_background['steps'] = adapt_steps(background_ast[:background])
|
65
67
|
|
@@ -79,6 +81,7 @@ module CukeModeler
|
|
79
81
|
adapted_rule['name'] = rule_ast[:rule][:name]
|
80
82
|
adapted_rule['description'] = rule_ast[:rule][:description] || ''
|
81
83
|
adapted_rule['line'] = rule_ast[:rule][:location][:line]
|
84
|
+
adapted_rule['column'] = rule_ast[:rule][:location][:column]
|
82
85
|
|
83
86
|
adapted_rule['elements'] = adapt_child_elements(rule_ast[:rule])
|
84
87
|
|
@@ -99,6 +102,7 @@ module CukeModeler
|
|
99
102
|
adapted_scenario['name'] = test_ast[:scenario][:name]
|
100
103
|
adapted_scenario['description'] = test_ast[:scenario][:description] || ''
|
101
104
|
adapted_scenario['line'] = test_ast[:scenario][:location][:line]
|
105
|
+
adapted_scenario['column'] = test_ast[:scenario][:location][:column]
|
102
106
|
|
103
107
|
adapted_scenario['tags'] = adapt_tags(test_ast[:scenario])
|
104
108
|
adapted_scenario['steps'] = adapt_steps(test_ast[:scenario])
|
@@ -121,6 +125,7 @@ module CukeModeler
|
|
121
125
|
adapted_outline['name'] = test_ast[:scenario][:name]
|
122
126
|
adapted_outline['description'] = test_ast[:scenario][:description] || ''
|
123
127
|
adapted_outline['line'] = test_ast[:scenario][:location][:line]
|
128
|
+
adapted_outline['column'] = test_ast[:scenario][:location][:column]
|
124
129
|
|
125
130
|
adapted_outline['tags'] = adapt_tags(test_ast[:scenario])
|
126
131
|
adapted_outline['steps'] = adapt_steps(test_ast[:scenario])
|
@@ -142,6 +147,7 @@ module CukeModeler
|
|
142
147
|
adapted_example['keyword'] = example_ast[:keyword]
|
143
148
|
adapted_example['name'] = example_ast[:name]
|
144
149
|
adapted_example['line'] = example_ast[:location][:line]
|
150
|
+
adapted_example['column'] = example_ast[:location][:column]
|
145
151
|
adapted_example['description'] = example_ast[:description] || ''
|
146
152
|
|
147
153
|
adapted_example['rows'] = []
|
@@ -165,6 +171,7 @@ module CukeModeler
|
|
165
171
|
|
166
172
|
adapted_tag['name'] = tag_ast[:name]
|
167
173
|
adapted_tag['line'] = tag_ast[:location][:line]
|
174
|
+
adapted_tag['column'] = tag_ast[:location][:column]
|
168
175
|
|
169
176
|
adapted_tag
|
170
177
|
end
|
@@ -178,6 +185,7 @@ module CukeModeler
|
|
178
185
|
|
179
186
|
adapted_comment['text'] = comment_ast[:text]
|
180
187
|
adapted_comment['line'] = comment_ast[:location][:line]
|
188
|
+
adapted_comment['column'] = comment_ast[:location][:column]
|
181
189
|
|
182
190
|
adapted_comment
|
183
191
|
end
|
@@ -194,6 +202,7 @@ module CukeModeler
|
|
194
202
|
adapted_step['keyword'] = step_ast[:keyword]
|
195
203
|
adapted_step['name'] = step_ast[:text]
|
196
204
|
adapted_step['line'] = step_ast[:location][:line]
|
205
|
+
adapted_step['column'] = step_ast[:location][:column]
|
197
206
|
|
198
207
|
if step_ast[:doc_string]
|
199
208
|
adapted_step['doc_string'] = adapt_doc_string(step_ast[:doc_string])
|
@@ -214,6 +223,7 @@ module CukeModeler
|
|
214
223
|
adapted_doc_string['value'] = doc_string_ast[:content]
|
215
224
|
adapted_doc_string['content_type'] = doc_string_ast[:media_type]
|
216
225
|
adapted_doc_string['line'] = doc_string_ast[:location][:line]
|
226
|
+
adapted_doc_string['column'] = doc_string_ast[:location][:column]
|
217
227
|
|
218
228
|
adapted_doc_string
|
219
229
|
end
|
@@ -231,6 +241,7 @@ module CukeModeler
|
|
231
241
|
adapted_step_table['rows'] << adapt_table_row(row)
|
232
242
|
end
|
233
243
|
adapted_step_table['line'] = step_table_ast[:location][:line]
|
244
|
+
adapted_step_table['column'] = step_table_ast[:location][:column]
|
234
245
|
|
235
246
|
adapted_step_table
|
236
247
|
end
|
@@ -244,6 +255,7 @@ module CukeModeler
|
|
244
255
|
clear_child_elements(adapted_table_row, [[:cells]])
|
245
256
|
|
246
257
|
adapted_table_row['line'] = table_row_ast[:location][:line]
|
258
|
+
adapted_table_row['column'] = table_row_ast[:location][:column]
|
247
259
|
|
248
260
|
adapted_table_row['cells'] = []
|
249
261
|
table_row_ast[:cells].each do |row|
|
@@ -262,6 +274,7 @@ module CukeModeler
|
|
262
274
|
|
263
275
|
adapted_cell['value'] = cell_ast[:value]
|
264
276
|
adapted_cell['line'] = cell_ast[:location][:line]
|
277
|
+
adapted_cell['column'] = cell_ast[:location][:column]
|
265
278
|
|
266
279
|
adapted_cell
|
267
280
|
end
|
@@ -55,7 +55,7 @@ module CukeModeler
|
|
55
55
|
|
56
56
|
def populate_scenario(scenario_object, parsed_scenario_data)
|
57
57
|
populate_parsing_data(scenario_object, parsed_scenario_data)
|
58
|
-
|
58
|
+
populate_source_location(scenario_object, parsed_scenario_data)
|
59
59
|
populate_keyword(scenario_object, parsed_scenario_data)
|
60
60
|
populate_name(scenario_object, parsed_scenario_data)
|
61
61
|
populate_description(scenario_object, parsed_scenario_data)
|
@@ -65,7 +65,7 @@ module CukeModeler
|
|
65
65
|
|
66
66
|
def populate_outline(outline_object, parsed_outline_data)
|
67
67
|
populate_parsing_data(outline_object, parsed_outline_data)
|
68
|
-
|
68
|
+
populate_source_location(outline_object, parsed_outline_data)
|
69
69
|
populate_keyword(outline_object, parsed_outline_data)
|
70
70
|
populate_name(outline_object, parsed_outline_data)
|
71
71
|
populate_description(outline_object, parsed_outline_data)
|
@@ -79,7 +79,7 @@ module CukeModeler
|
|
79
79
|
populate_keyword(background_object, parsed_background_data)
|
80
80
|
populate_name(background_object, parsed_background_data)
|
81
81
|
populate_description(background_object, parsed_background_data)
|
82
|
-
|
82
|
+
populate_source_location(background_object, parsed_background_data)
|
83
83
|
populate_steps(background_object, parsed_background_data)
|
84
84
|
end
|
85
85
|
|
@@ -87,7 +87,7 @@ module CukeModeler
|
|
87
87
|
populate_text(step_object, parsed_step_data)
|
88
88
|
populate_block(step_object, parsed_step_data)
|
89
89
|
populate_keyword(step_object, parsed_step_data)
|
90
|
-
|
90
|
+
populate_source_location(step_object, parsed_step_data)
|
91
91
|
populate_parsing_data(step_object, parsed_step_data)
|
92
92
|
end
|
93
93
|
|
@@ -102,12 +102,12 @@ module CukeModeler
|
|
102
102
|
def populate_table(table_object, parsed_table_data)
|
103
103
|
populate_row_models(table_object, parsed_table_data)
|
104
104
|
populate_parsing_data(table_object, parsed_table_data)
|
105
|
-
|
105
|
+
populate_source_location(table_object, parsed_table_data)
|
106
106
|
end
|
107
107
|
|
108
108
|
def populate_cell(cell_object, parsed_cell_data)
|
109
109
|
populate_cell_value(cell_object, parsed_cell_data)
|
110
|
-
|
110
|
+
populate_source_location(cell_object, parsed_cell_data)
|
111
111
|
populate_parsing_data(cell_object, parsed_cell_data)
|
112
112
|
end
|
113
113
|
|
@@ -115,13 +115,13 @@ module CukeModeler
|
|
115
115
|
populate_content_type(doc_string_object, parsed_doc_string_data)
|
116
116
|
populate_content(doc_string_object, parsed_doc_string_data)
|
117
117
|
populate_parsing_data(doc_string_object, parsed_doc_string_data)
|
118
|
-
|
118
|
+
populate_source_location(doc_string_object, parsed_doc_string_data)
|
119
119
|
end
|
120
120
|
|
121
121
|
def populate_example(example_object, parsed_example_data)
|
122
122
|
populate_parsing_data(example_object, parsed_example_data)
|
123
123
|
populate_keyword(example_object, parsed_example_data)
|
124
|
-
|
124
|
+
populate_source_location(example_object, parsed_example_data)
|
125
125
|
populate_name(example_object, parsed_example_data)
|
126
126
|
populate_description(example_object, parsed_example_data)
|
127
127
|
populate_tags(example_object, parsed_example_data)
|
@@ -129,14 +129,14 @@ module CukeModeler
|
|
129
129
|
end
|
130
130
|
|
131
131
|
def populate_row(row_object, parsed_row_data)
|
132
|
-
|
132
|
+
populate_source_location(row_object, parsed_row_data)
|
133
133
|
populate_row_cells(row_object, parsed_row_data)
|
134
134
|
populate_parsing_data(row_object, parsed_row_data)
|
135
135
|
end
|
136
136
|
|
137
137
|
def populate_feature(feature_object, parsed_feature_data)
|
138
138
|
populate_parsing_data(feature_object, parsed_feature_data)
|
139
|
-
|
139
|
+
populate_source_location(feature_object, parsed_feature_data)
|
140
140
|
populate_keyword(feature_object, parsed_feature_data)
|
141
141
|
populate_name(feature_object, parsed_feature_data)
|
142
142
|
populate_description(feature_object, parsed_feature_data)
|
@@ -146,7 +146,7 @@ module CukeModeler
|
|
146
146
|
|
147
147
|
def populate_rule(rule_object, parsed_rule_data)
|
148
148
|
populate_parsing_data(rule_object, parsed_rule_data)
|
149
|
-
|
149
|
+
populate_source_location(rule_object, parsed_rule_data)
|
150
150
|
populate_keyword(rule_object, parsed_rule_data)
|
151
151
|
populate_name(rule_object, parsed_rule_data)
|
152
152
|
populate_description(rule_object, parsed_rule_data)
|
@@ -182,13 +182,13 @@ module CukeModeler
|
|
182
182
|
def populate_tag(tag_object, processed_tag_data)
|
183
183
|
populate_name(tag_object, processed_tag_data)
|
184
184
|
populate_parsing_data(tag_object, processed_tag_data)
|
185
|
-
|
185
|
+
populate_source_location(tag_object, processed_tag_data)
|
186
186
|
end
|
187
187
|
|
188
188
|
def populate_comment(comment_object, processed_comment_data)
|
189
189
|
populate_comment_text(comment_object, processed_comment_data)
|
190
190
|
populate_parsing_data(comment_object, processed_comment_data)
|
191
|
-
|
191
|
+
populate_source_location(comment_object, processed_comment_data)
|
192
192
|
end
|
193
193
|
|
194
194
|
def populate_comment_text(comment_model, parsed_comment_data)
|
@@ -8,12 +8,15 @@ module CukeModeler
|
|
8
8
|
# The line number where the element began in the source code
|
9
9
|
attr_accessor :source_line
|
10
10
|
|
11
|
+
# The column number where the element began in the source code
|
12
|
+
attr_accessor :source_column
|
11
13
|
|
12
14
|
private
|
13
15
|
|
14
16
|
|
15
|
-
def
|
17
|
+
def populate_source_location(model, parsed_model_data)
|
16
18
|
model.source_line = parsed_model_data['line']
|
19
|
+
model.source_column = parsed_model_data['column']
|
17
20
|
end
|
18
21
|
|
19
22
|
end
|
data/lib/cuke_modeler/version.rb
CHANGED
@@ -23,21 +23,21 @@ Feature: Background modeling
|
|
23
23
|
"""
|
24
24
|
|
25
25
|
|
26
|
-
Scenario: Modeling a
|
26
|
+
Scenario: Modeling a background's keyword
|
27
27
|
When the backgrounds's keyword is requested
|
28
28
|
"""
|
29
29
|
@model.keyword
|
30
30
|
"""
|
31
31
|
Then the model returns "Background"
|
32
32
|
|
33
|
-
Scenario: Modeling a
|
33
|
+
Scenario: Modeling a background's name
|
34
34
|
When the background's name is requested
|
35
35
|
"""
|
36
36
|
@model.name
|
37
37
|
"""
|
38
38
|
Then the model returns "Some general test setup stuff."
|
39
39
|
|
40
|
-
Scenario: Modeling a
|
40
|
+
Scenario: Modeling a background's description
|
41
41
|
When the background's description is requested
|
42
42
|
"""
|
43
43
|
@model.description
|
@@ -50,7 +50,7 @@ Feature: Background modeling
|
|
50
50
|
Even more.
|
51
51
|
"""
|
52
52
|
|
53
|
-
Scenario: Modeling a
|
53
|
+
Scenario: Modeling a background's steps
|
54
54
|
When the background's steps are requested
|
55
55
|
"""
|
56
56
|
@model.steps
|
@@ -60,7 +60,7 @@ Feature: Background modeling
|
|
60
60
|
| another setup step |
|
61
61
|
| an action step |
|
62
62
|
|
63
|
-
Scenario: Modeling a
|
63
|
+
Scenario: Modeling a background's source line
|
64
64
|
Given the following gherkin:
|
65
65
|
"""
|
66
66
|
Feature:
|
@@ -81,3 +81,26 @@ Feature: Background modeling
|
|
81
81
|
@model.source_line
|
82
82
|
"""
|
83
83
|
Then the model returns "3"
|
84
|
+
|
85
|
+
Scenario: Modeling a background's source column
|
86
|
+
Given the following gherkin:
|
87
|
+
"""
|
88
|
+
Feature:
|
89
|
+
|
90
|
+
|
91
|
+
Background:
|
92
|
+
* a step
|
93
|
+
"""
|
94
|
+
And a feature model based on that gherkin
|
95
|
+
"""
|
96
|
+
@model = CukeModeler::Feature.new(<source_text>)
|
97
|
+
"""
|
98
|
+
And the background model of that feature model
|
99
|
+
"""
|
100
|
+
@model = @model.background
|
101
|
+
"""
|
102
|
+
When the background's source column is requested
|
103
|
+
"""
|
104
|
+
@model.source_column
|
105
|
+
"""
|
106
|
+
Then the model returns "3"
|
@@ -20,3 +20,49 @@ Feature: Cell modeling
|
|
20
20
|
@model.value
|
21
21
|
"""
|
22
22
|
Then the model returns "foo"
|
23
|
+
|
24
|
+
Scenario: Modeling a cell's source line
|
25
|
+
Given the following gherkin:
|
26
|
+
"""
|
27
|
+
Feature:
|
28
|
+
|
29
|
+
Scenario:
|
30
|
+
* a step
|
31
|
+
| foo |
|
32
|
+
"""
|
33
|
+
And a feature model based on that gherkin
|
34
|
+
"""
|
35
|
+
@model = CukeModeler::Feature.new(<source_text>)
|
36
|
+
"""
|
37
|
+
And the cell model inside of that feature model
|
38
|
+
"""
|
39
|
+
@model = @model.tests.first.steps.first.block.rows.first.cells.first
|
40
|
+
"""
|
41
|
+
When the cell's source line is requested
|
42
|
+
"""
|
43
|
+
@model.source_line
|
44
|
+
"""
|
45
|
+
Then the model returns "5"
|
46
|
+
|
47
|
+
Scenario: Modeling a cell's source column
|
48
|
+
Given the following gherkin:
|
49
|
+
"""
|
50
|
+
Feature:
|
51
|
+
|
52
|
+
Scenario:
|
53
|
+
* a step
|
54
|
+
| foo |
|
55
|
+
"""
|
56
|
+
And a feature model based on that gherkin
|
57
|
+
"""
|
58
|
+
@model = CukeModeler::Feature.new(<source_text>)
|
59
|
+
"""
|
60
|
+
And the cell model inside of that feature model
|
61
|
+
"""
|
62
|
+
@model = @model.tests.first.steps.first.block.rows.first.cells.first
|
63
|
+
"""
|
64
|
+
When the cell's source column is requested
|
65
|
+
"""
|
66
|
+
@model.source_column
|
67
|
+
"""
|
68
|
+
Then the model returns "9"
|
@@ -40,3 +40,23 @@ Feature: Comment modeling
|
|
40
40
|
@model.source_line
|
41
41
|
"""
|
42
42
|
Then the model returns "1"
|
43
|
+
|
44
|
+
Scenario: Modeling a comment's source column
|
45
|
+
Given a feature file with the following gherkin:
|
46
|
+
"""
|
47
|
+
# a comment
|
48
|
+
Feature:
|
49
|
+
"""
|
50
|
+
And a feature file model based on that file
|
51
|
+
"""
|
52
|
+
@model = CukeModeler::FeatureFile.new(<file_path>)
|
53
|
+
"""
|
54
|
+
And the comment model of that feature file model
|
55
|
+
"""
|
56
|
+
@model = @model.comments.first
|
57
|
+
"""
|
58
|
+
When the comment's source column is requested
|
59
|
+
"""
|
60
|
+
@model.source_column
|
61
|
+
"""
|
62
|
+
Then the model returns "1"
|
@@ -57,3 +57,29 @@ Feature: Doc string modeling
|
|
57
57
|
@model.source_line
|
58
58
|
"""
|
59
59
|
Then the model returns "5"
|
60
|
+
|
61
|
+
|
62
|
+
Scenario: Modeling a doc string's source column
|
63
|
+
Given the following gherkin:
|
64
|
+
"""
|
65
|
+
Feature:
|
66
|
+
|
67
|
+
Scenario:
|
68
|
+
* a step
|
69
|
+
\"\"\"
|
70
|
+
foo
|
71
|
+
\"\"\"
|
72
|
+
"""
|
73
|
+
And a feature model based on that gherkin
|
74
|
+
"""
|
75
|
+
@model = CukeModeler::Feature.new(<source_text>)
|
76
|
+
"""
|
77
|
+
And the doc string model inside of that feature model
|
78
|
+
"""
|
79
|
+
@model = @model.tests.first.steps.first.block
|
80
|
+
"""
|
81
|
+
When the doc string's source column is requested
|
82
|
+
"""
|
83
|
+
@model.source_column
|
84
|
+
"""
|
85
|
+
Then the model returns "7"
|
@@ -128,3 +128,28 @@ Feature: Example modeling
|
|
128
128
|
@model.source_line
|
129
129
|
"""
|
130
130
|
Then the model returns "5"
|
131
|
+
|
132
|
+
Scenario: Modeling an example's source column
|
133
|
+
Given the following gherkin:
|
134
|
+
"""
|
135
|
+
Feature:
|
136
|
+
|
137
|
+
Scenario Outline:
|
138
|
+
* a step
|
139
|
+
Examples:
|
140
|
+
| param |
|
141
|
+
| value |
|
142
|
+
"""
|
143
|
+
And a feature model based on that gherkin
|
144
|
+
"""
|
145
|
+
@model = CukeModeler::Feature.new(<source_text>)
|
146
|
+
"""
|
147
|
+
And the example model inside of that feature model
|
148
|
+
"""
|
149
|
+
@model = @model.tests.first.examples.first
|
150
|
+
"""
|
151
|
+
When the example's source column is requested
|
152
|
+
"""
|
153
|
+
@model.source_column
|
154
|
+
"""
|
155
|
+
Then the model returns "3"
|
@@ -124,7 +124,7 @@ Feature: Outline modeling
|
|
124
124
|
| @outline_tag_1 |
|
125
125
|
| @outline_tag_2 |
|
126
126
|
|
127
|
-
Scenario: Modeling
|
127
|
+
Scenario: Modeling an outline's source line
|
128
128
|
Given the following gherkin:
|
129
129
|
"""
|
130
130
|
Feature:
|
@@ -148,3 +148,28 @@ Feature: Outline modeling
|
|
148
148
|
@model.source_line
|
149
149
|
"""
|
150
150
|
Then the model returns "3"
|
151
|
+
|
152
|
+
Scenario: Modeling an outline's source column
|
153
|
+
Given the following gherkin:
|
154
|
+
"""
|
155
|
+
Feature:
|
156
|
+
|
157
|
+
Scenario Outline:
|
158
|
+
* a step
|
159
|
+
Examples:
|
160
|
+
| param |
|
161
|
+
| value |
|
162
|
+
"""
|
163
|
+
And a feature model based on that gherkin
|
164
|
+
"""
|
165
|
+
@model = CukeModeler::Feature.new(<source_text>)
|
166
|
+
"""
|
167
|
+
And the outline model of that feature model
|
168
|
+
"""
|
169
|
+
@model = @model.outlines.first
|
170
|
+
"""
|
171
|
+
When the outline's source column is requested
|
172
|
+
"""
|
173
|
+
@model.source_column
|
174
|
+
"""
|
175
|
+
Then the model returns "3"
|
@@ -45,3 +45,26 @@ Feature: Row modeling
|
|
45
45
|
@model.source_line
|
46
46
|
"""
|
47
47
|
Then the model returns "5"
|
48
|
+
|
49
|
+
Scenario: Modeling a row's source column
|
50
|
+
Given the following gherkin:
|
51
|
+
"""
|
52
|
+
Feature:
|
53
|
+
|
54
|
+
Scenario:
|
55
|
+
* a step
|
56
|
+
| foo |
|
57
|
+
"""
|
58
|
+
And a feature model based on that gherkin
|
59
|
+
"""
|
60
|
+
@model = CukeModeler::Feature.new(<source_text>)
|
61
|
+
"""
|
62
|
+
And the row model inside of that feature model
|
63
|
+
"""
|
64
|
+
@model = @model.tests.first.steps.first.block.rows.first
|
65
|
+
"""
|
66
|
+
When the rows's source column is requested
|
67
|
+
"""
|
68
|
+
@model.source_column
|
69
|
+
"""
|
70
|
+
Then the model returns "7"
|
@@ -148,3 +148,24 @@ in that rule.
|
|
148
148
|
@model.source_line
|
149
149
|
"""
|
150
150
|
Then the model returns "3"
|
151
|
+
|
152
|
+
Scenario: Modeling a rule's source column
|
153
|
+
Given the following gherkin:
|
154
|
+
"""
|
155
|
+
Feature:
|
156
|
+
|
157
|
+
Rule:
|
158
|
+
"""
|
159
|
+
And a feature model based on that gherkin
|
160
|
+
"""
|
161
|
+
@model = CukeModeler::Feature.new(<source_text>)
|
162
|
+
"""
|
163
|
+
And the rule model of that feature model
|
164
|
+
"""
|
165
|
+
@model = @model.rules.first
|
166
|
+
"""
|
167
|
+
When the rule's source column is requested
|
168
|
+
"""
|
169
|
+
@model.source_column
|
170
|
+
"""
|
171
|
+
Then the model returns "3"
|
@@ -122,3 +122,25 @@ Feature: Scenario modeling
|
|
122
122
|
@model.source_line
|
123
123
|
"""
|
124
124
|
Then the model returns "3"
|
125
|
+
|
126
|
+
Scenario: Modeling a scenario's source column
|
127
|
+
Given the following gherkin:
|
128
|
+
"""
|
129
|
+
Feature:
|
130
|
+
|
131
|
+
Scenario:
|
132
|
+
* a step
|
133
|
+
"""
|
134
|
+
And a feature model based on that gherkin
|
135
|
+
"""
|
136
|
+
@model = CukeModeler::Feature.new(<source_text>)
|
137
|
+
"""
|
138
|
+
And the scenario model of that feature model
|
139
|
+
"""
|
140
|
+
@model = @model.scenarios.first
|
141
|
+
"""
|
142
|
+
When the scenario's source column is requested
|
143
|
+
"""
|
144
|
+
@model.source_column
|
145
|
+
"""
|
146
|
+
Then the model returns "3"
|
@@ -50,6 +50,28 @@ Feature: Step modeling
|
|
50
50
|
"""
|
51
51
|
Then the model returns "4"
|
52
52
|
|
53
|
+
Scenario: Modeling a step's source column
|
54
|
+
Given the following gherkin:
|
55
|
+
"""
|
56
|
+
Feature:
|
57
|
+
|
58
|
+
Scenario:
|
59
|
+
* a step
|
60
|
+
"""
|
61
|
+
And a feature model based on that gherkin
|
62
|
+
"""
|
63
|
+
@model = CukeModeler::Feature.new(<source_text>)
|
64
|
+
"""
|
65
|
+
And the step model inside of that feature model
|
66
|
+
"""
|
67
|
+
@model = @model.tests.first.steps.first
|
68
|
+
"""
|
69
|
+
When the step's source column is requested
|
70
|
+
"""
|
71
|
+
@model.source_column
|
72
|
+
"""
|
73
|
+
Then the model returns "5"
|
74
|
+
|
53
75
|
Scenario: Modeling a step's table
|
54
76
|
Given a step model based on the following gherkin:
|
55
77
|
"""
|
@@ -47,3 +47,27 @@ Feature: Table modeling
|
|
47
47
|
@model.source_line
|
48
48
|
"""
|
49
49
|
Then the model returns "5"
|
50
|
+
|
51
|
+
Scenario: Modeling a table's source column
|
52
|
+
Given the following gherkin:
|
53
|
+
"""
|
54
|
+
Feature:
|
55
|
+
|
56
|
+
Scenario:
|
57
|
+
* a step
|
58
|
+
| value 1 |
|
59
|
+
| value 2 |
|
60
|
+
"""
|
61
|
+
And a feature model based on that gherkin
|
62
|
+
"""
|
63
|
+
@model = CukeModeler::Feature.new(<source_text>)
|
64
|
+
"""
|
65
|
+
And the table model inside of that feature model
|
66
|
+
"""
|
67
|
+
@model = @model.tests.first.steps.first.block
|
68
|
+
"""
|
69
|
+
When the table's source column is requested
|
70
|
+
"""
|
71
|
+
@model.source_column
|
72
|
+
"""
|
73
|
+
Then the model returns "7"
|
@@ -40,3 +40,23 @@ Feature: Tag modeling
|
|
40
40
|
@model.source_line
|
41
41
|
"""
|
42
42
|
Then the model returns "1"
|
43
|
+
|
44
|
+
Scenario: Modeling a tag's source column
|
45
|
+
Given the following gherkin:
|
46
|
+
"""
|
47
|
+
@a_tag
|
48
|
+
Feature:
|
49
|
+
"""
|
50
|
+
And a feature model based on that gherkin
|
51
|
+
"""
|
52
|
+
@model = CukeModeler::Feature.new(<source_text>)
|
53
|
+
"""
|
54
|
+
And the tag model of that feature model
|
55
|
+
"""
|
56
|
+
@model = @model.tags.first
|
57
|
+
"""
|
58
|
+
When the tag's source column is requested
|
59
|
+
"""
|
60
|
+
@model.source_column
|
61
|
+
"""
|
62
|
+
Then the model returns "1"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cuke_modeler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.14.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Kessler
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-11-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cucumber-gherkin
|