File tree 2 files changed +25
-1
lines changed
lib/cucumber/core/gherkin
spec/cucumber/core/test/filters
2 files changed +25
-1
lines changed Original file line number Diff line number Diff line change @@ -373,6 +373,12 @@ def result
373
373
def rows
374
374
attributes [ :rows ] = attributes [ :rows ] . map { |r | r [ :cells ] . map { |c | c [ :value ] } }
375
375
end
376
+
377
+ def location
378
+ first_line = attributes [ :location ] [ :line ]
379
+ last_line = first_line + attributes [ :rows ] . length - 1
380
+ Ast ::Location . new ( file , first_line ..last_line )
381
+ end
376
382
end
377
383
378
384
class DocStringBuilder < Builder
Original file line number Diff line number Diff line change @@ -96,6 +96,9 @@ module Cucumber::Core
96
96
Given a table
97
97
| a | b |
98
98
| 1 | 2 |
99
+ | 3 | 4 |
100
+
101
+ Scenario: empty
99
102
END
100
103
end
101
104
@@ -192,10 +195,25 @@ def test_case_named(name)
192
195
test_cases . find { |c | c . name == 'with a table' }
193
196
end
194
197
195
- it "matches a location on the first table row " do
198
+ it "matches a location at the start of the table " do
196
199
location = Ast ::Location . new ( file , 23 )
197
200
expect ( test_case . match_locations? ( [ location ] ) ) . to be_truthy
198
201
end
202
+
203
+ it "matches a location in the middle of the table" do
204
+ location = Ast ::Location . new ( file , 24 )
205
+ expect ( test_case . match_locations? ( [ location ] ) ) . to be_truthy
206
+ end
207
+
208
+ it "matches a location at the end of the table" do
209
+ location = Ast ::Location . new ( file , 25 )
210
+ expect ( test_case . match_locations? ( [ location ] ) ) . to be_truthy
211
+ end
212
+
213
+ it "does not match a location after the table" do
214
+ location = Ast ::Location . new ( file , 26 )
215
+ expect ( test_case . match_locations? ( [ location ] ) ) . to be_falsey
216
+ end
199
217
end
200
218
201
219
context "with duplicate locations in the filter" do
You can’t perform that action at this time.
0 commit comments