cuke_modeler 1.3.0 → 2.1.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.
Files changed (90) hide show
  1. checksums.yaml +5 -5
  2. data/.travis.yml +60 -17
  3. data/CHANGELOG.md +312 -0
  4. data/Gemfile +19 -3
  5. data/LICENSE.txt +1 -1
  6. data/README.md +17 -7
  7. data/Rakefile +45 -28
  8. data/appveyor.yml +57 -17
  9. data/cuke_modeler.gemspec +6 -3
  10. data/lib/cuke_modeler/adapters/gherkin_2_adapter.rb +1 -0
  11. data/lib/cuke_modeler/adapters/gherkin_3_adapter.rb +1 -0
  12. data/lib/cuke_modeler/adapters/gherkin_4_adapter.rb +2 -1
  13. data/lib/cuke_modeler/adapters/gherkin_5_adapter.rb +12 -0
  14. data/lib/cuke_modeler/adapters/gherkin_6_adapter.rb +310 -0
  15. data/lib/cuke_modeler/adapters/gherkin_7_adapter.rb +307 -0
  16. data/lib/cuke_modeler/adapters/gherkin_8_adapter.rb +12 -0
  17. data/lib/cuke_modeler/adapters/gherkin_9_adapter.rb +12 -0
  18. data/lib/cuke_modeler/containing.rb +16 -0
  19. data/lib/cuke_modeler/described.rb +1 -0
  20. data/lib/cuke_modeler/models/step.rb +31 -2
  21. data/lib/cuke_modeler/named.rb +1 -0
  22. data/lib/cuke_modeler/nested.rb +1 -0
  23. data/lib/cuke_modeler/parsed.rb +1 -0
  24. data/lib/cuke_modeler/parsing.rb +116 -68
  25. data/lib/cuke_modeler/sourceable.rb +1 -0
  26. data/lib/cuke_modeler/stepped.rb +1 -0
  27. data/lib/cuke_modeler/taggable.rb +1 -0
  28. data/lib/cuke_modeler/version.rb +1 -1
  29. data/testing/cucumber/features/analysis/step_comparison.feature +25 -0
  30. data/testing/cucumber/features/analysis/test_comparison.feature +1 -1
  31. data/testing/cucumber/step_definitions/feature_file_steps.rb +1 -1
  32. data/testing/cucumber/step_definitions/modeling_steps.rb +7 -2
  33. data/testing/cucumber/step_definitions/verification_steps.rb +11 -2
  34. data/testing/file_helper.rb +3 -0
  35. data/testing/gemfiles/gherkin2.gemfile +8 -0
  36. data/testing/gemfiles/gherkin3.gemfile +6 -0
  37. data/testing/gemfiles/gherkin4.gemfile +7 -0
  38. data/testing/gemfiles/gherkin5.gemfile +7 -0
  39. data/testing/gemfiles/gherkin6.gemfile +10 -0
  40. data/testing/gemfiles/gherkin7.gemfile +9 -0
  41. data/testing/gemfiles/gherkin8.gemfile +9 -0
  42. data/testing/gemfiles/gherkin9.gemfile +9 -0
  43. data/testing/helper_methods.rb +23 -0
  44. data/testing/rspec/spec/integration/{gherkin_2_adapter_spec.rb → adapters/gherkin_2_adapter_spec.rb} +13 -13
  45. data/testing/rspec/spec/integration/{gherkin_3_adapter_spec.rb → adapters/gherkin_3_adapter_spec.rb} +13 -13
  46. data/testing/rspec/spec/integration/{gherkin_4_adapter_spec.rb → adapters/gherkin_4_adapter_spec.rb} +13 -13
  47. data/testing/rspec/spec/integration/adapters/gherkin_5_adapter_spec.rb +165 -0
  48. data/testing/rspec/spec/integration/adapters/gherkin_6_adapter_spec.rb +159 -0
  49. data/testing/rspec/spec/integration/adapters/gherkin_7_adapter_spec.rb +162 -0
  50. data/testing/rspec/spec/integration/adapters/gherkin_8_adapter_spec.rb +162 -0
  51. data/testing/rspec/spec/integration/adapters/gherkin_9_adapter_spec.rb +162 -0
  52. data/testing/rspec/spec/integration/{background_integration_spec.rb → models/background_integration_spec.rb} +90 -86
  53. data/testing/rspec/spec/integration/{cell_integration_spec.rb → models/cell_integration_spec.rb} +49 -38
  54. data/testing/rspec/spec/integration/{comment_integration_spec.rb → models/comment_integration_spec.rb} +31 -20
  55. data/testing/rspec/spec/integration/{directory_integration_spec.rb → models/directory_integration_spec.rb} +3 -3
  56. data/testing/rspec/spec/integration/{doc_string_integration_spec.rb → models/doc_string_integration_spec.rb} +39 -35
  57. data/testing/rspec/spec/integration/{example_integration_spec.rb → models/example_integration_spec.rb} +109 -83
  58. data/testing/rspec/spec/integration/{feature_file_integration_spec.rb → models/feature_file_integration_spec.rb} +52 -38
  59. data/testing/rspec/spec/integration/{feature_integration_spec.rb → models/feature_integration_spec.rb} +125 -112
  60. data/testing/rspec/spec/integration/{model_integration_spec.rb → models/model_integration_spec.rb} +1 -1
  61. data/testing/rspec/spec/integration/{outline_integration_spec.rb → models/outline_integration_spec.rb} +138 -129
  62. data/testing/rspec/spec/integration/{row_integration_spec.rb → models/row_integration_spec.rb} +55 -35
  63. data/testing/rspec/spec/integration/{scenario_integration_spec.rb → models/scenario_integration_spec.rb} +92 -88
  64. data/testing/rspec/spec/integration/models/step_integration_spec.rb +573 -0
  65. data/testing/rspec/spec/integration/{table_integration_spec.rb → models/table_integration_spec.rb} +38 -34
  66. data/testing/rspec/spec/integration/{tag_integration_spec.rb → models/tag_integration_spec.rb} +56 -36
  67. data/testing/rspec/spec/integration/parsing_integration_spec.rb +45 -7
  68. data/testing/rspec/spec/spec_helper.rb +79 -43
  69. data/testing/rspec/spec/unit/cuke_modeler_unit_spec.rb +25 -0
  70. data/testing/rspec/spec/unit/{background_unit_spec.rb → models/background_unit_spec.rb} +1 -1
  71. data/testing/rspec/spec/unit/{cell_unit_spec.rb → models/cell_unit_spec.rb} +1 -1
  72. data/testing/rspec/spec/unit/{comment_unit_spec.rb → models/comment_unit_spec.rb} +1 -1
  73. data/testing/rspec/spec/unit/{directory_unit_spec.rb → models/directory_unit_spec.rb} +1 -1
  74. data/testing/rspec/spec/unit/{doc_string_unit_spec.rb → models/doc_string_unit_spec.rb} +1 -1
  75. data/testing/rspec/spec/unit/{example_unit_spec.rb → models/example_unit_spec.rb} +1 -1
  76. data/testing/rspec/spec/unit/{feature_file_unit_spec.rb → models/feature_file_unit_spec.rb} +1 -1
  77. data/testing/rspec/spec/unit/{feature_unit_spec.rb → models/feature_unit_spec.rb} +1 -1
  78. data/testing/rspec/spec/unit/{model_unit_spec.rb → models/model_unit_spec.rb} +1 -1
  79. data/testing/rspec/spec/unit/{outline_unit_spec.rb → models/outline_unit_spec.rb} +1 -1
  80. data/testing/rspec/spec/unit/{row_unit_spec.rb → models/row_unit_spec.rb} +1 -1
  81. data/testing/rspec/spec/unit/{scenario_unit_spec.rb → models/scenario_unit_spec.rb} +1 -1
  82. data/testing/rspec/spec/unit/{step_unit_spec.rb → models/step_unit_spec.rb} +2 -2
  83. data/testing/rspec/spec/unit/{table_unit_spec.rb → models/table_unit_spec.rb} +1 -1
  84. data/testing/rspec/spec/unit/{tag_unit_spec.rb → models/tag_unit_spec.rb} +1 -1
  85. data/testing/rspec/spec/unit/shared/containing_models_unit_specs.rb +102 -0
  86. data/todo.txt +5 -2
  87. metadata +80 -47
  88. data/History.md +0 -186
  89. data/testing/cucumber/support/transforms.rb +0 -3
  90. data/testing/rspec/spec/integration/step_integration_spec.rb +0 -459
@@ -1,4 +1,4 @@
1
- require "#{File.dirname(__FILE__)}/../spec_helper"
1
+ require "#{File.dirname(__FILE__)}/../../spec_helper"
2
2
 
3
3
 
4
4
  describe 'Cell, Integration' do
@@ -44,30 +44,41 @@ describe 'Cell, Integration' do
44
44
  expect { clazz.new(source) }.to raise_error(/'cuke_modeler_stand_alone_cell\.feature'/)
45
45
  end
46
46
 
47
- it 'stores the original data generated by the parsing adapter', :gherkin4 => true do
48
- cell = clazz.new('a cell')
49
- data = cell.parsing_data
47
+ describe 'parsing data' do
50
48
 
51
- expect(data.keys).to match_array([:type, :location, :value])
52
- expect(data[:type]).to eq(:TableCell)
53
- end
49
+ it 'stores the original data generated by the parsing adapter', :if => gherkin?(6, 7, 8, 9) do
50
+ cell = clazz.new('a cell')
51
+ data = cell.parsing_data
54
52
 
55
- it 'stores the original data generated by the parsing adapter', :gherkin3 => true do
56
- cell = clazz.new("a cell")
57
- data = cell.parsing_data
53
+ expect(data.keys).to match_array([:location, :value])
54
+ expect(data[:value]).to eq('a cell')
55
+ end
58
56
 
59
- expect(data.keys).to match_array([:type, :location, :value])
60
- expect(data[:type]).to eq('TableCell')
61
- end
57
+ it 'stores the original data generated by the parsing adapter', :if => gherkin?(4, 5) do
58
+ cell = clazz.new('a cell')
59
+ data = cell.parsing_data
62
60
 
63
- it 'stores the original data generated by the parsing adapter', :gherkin2 => true do
64
- cell = clazz.new("a cell")
65
- data = cell.parsing_data
61
+ expect(data.keys).to match_array([:type, :location, :value])
62
+ expect(data[:type]).to eq(:TableCell)
63
+ end
66
64
 
67
- # Cells did not exist as full fledged objects in the Gherkin2 parser
68
- expect(data).to eq('a cell')
69
- end
65
+ it 'stores the original data generated by the parsing adapter', :if => gherkin?(3) do
66
+ cell = clazz.new("a cell")
67
+ data = cell.parsing_data
70
68
 
69
+ expect(data.keys).to match_array([:type, :location, :value])
70
+ expect(data[:type]).to eq('TableCell')
71
+ end
72
+
73
+ it 'stores the original data generated by the parsing adapter', :if => gherkin?(2) do
74
+ cell = clazz.new("a cell")
75
+ data = cell.parsing_data
76
+
77
+ # Cells did not exist as full fledged objects in the Gherkin2 parser
78
+ expect(data).to eq('a cell')
79
+ end
80
+
81
+ end
71
82
 
72
83
  describe 'getting ancestors' do
73
84
 
@@ -77,10 +88,10 @@ describe 'Cell, Integration' do
77
88
 
78
89
 
79
90
  let(:test_directory) { CukeModeler::FileHelper.create_directory }
80
- let(:source_gherkin) { "#{@feature_keyword}: Test feature
91
+ let(:source_gherkin) { "#{FEATURE_KEYWORD}: Test feature
81
92
 
82
- #{@scenario_keyword}: Test test
83
- #{@step_keyword} a step
93
+ #{SCENARIO_KEYWORD}: Test test
94
+ #{STEP_KEYWORD} a step
84
95
  | a value |"
85
96
  }
86
97
 
@@ -109,11 +120,11 @@ describe 'Cell, Integration' do
109
120
  context 'a cell that is part of an outline' do
110
121
 
111
122
  let(:test_directory) { CukeModeler::FileHelper.create_directory }
112
- let(:source_gherkin) { "#{@feature_keyword}: Test feature
123
+ let(:source_gherkin) { "#{FEATURE_KEYWORD}: Test feature
113
124
 
114
- #{@outline_keyword}: Test outline
115
- #{@step_keyword} a step
116
- #{@example_keyword}:
125
+ #{OUTLINE_KEYWORD}: Test outline
126
+ #{STEP_KEYWORD} a step
127
+ #{EXAMPLE_KEYWORD}:
117
128
  | param |
118
129
  | value |"
119
130
  }
@@ -146,10 +157,10 @@ describe 'Cell, Integration' do
146
157
  context 'a cell that is part of a scenario' do
147
158
 
148
159
  let(:test_directory) { CukeModeler::FileHelper.create_directory }
149
- let(:source_gherkin) { "#{@feature_keyword}: Test feature
160
+ let(:source_gherkin) { "#{FEATURE_KEYWORD}: Test feature
150
161
 
151
- #{@scenario_keyword}: Test test
152
- #{@step_keyword} a step:
162
+ #{SCENARIO_KEYWORD}: Test test
163
+ #{STEP_KEYWORD} a step:
153
164
  | a | table |"
154
165
  }
155
166
 
@@ -168,10 +179,10 @@ describe 'Cell, Integration' do
168
179
  context 'a cell that is part of a background' do
169
180
 
170
181
  let(:test_directory) { CukeModeler::FileHelper.create_directory }
171
- let(:source_gherkin) { "#{@feature_keyword}: Test feature
182
+ let(:source_gherkin) { "#{FEATURE_KEYWORD}: Test feature
172
183
 
173
- #{@background_keyword}: Test background
174
- #{@step_keyword} a step:
184
+ #{BACKGROUND_KEYWORD}: Test background
185
+ #{STEP_KEYWORD} a step:
175
186
  | a | table |"
176
187
  }
177
188
 
@@ -190,10 +201,10 @@ describe 'Cell, Integration' do
190
201
  context 'a cell that is part of a step' do
191
202
 
192
203
  let(:test_directory) { CukeModeler::FileHelper.create_directory }
193
- let(:source_gherkin) { "#{@feature_keyword}: Test feature
204
+ let(:source_gherkin) { "#{FEATURE_KEYWORD}: Test feature
194
205
 
195
- #{@scenario_keyword}: Test test
196
- #{@step_keyword} a step:
206
+ #{SCENARIO_KEYWORD}: Test test
207
+ #{STEP_KEYWORD} a step:
197
208
  | a | table |"
198
209
  }
199
210
 
@@ -243,10 +254,10 @@ describe 'Cell, Integration' do
243
254
  end
244
255
 
245
256
  it "models the cell's source line" do
246
- source_text = "#{@feature_keyword}:
257
+ source_text = "#{FEATURE_KEYWORD}:
247
258
 
248
- #{@scenario_keyword}:
249
- #{@step_keyword} a step
259
+ #{SCENARIO_KEYWORD}:
260
+ #{STEP_KEYWORD} a step
250
261
  | value |"
251
262
  cell = CukeModeler::Feature.new(source_text).tests.first.steps.first.block.rows.first.cells.first
252
263
 
@@ -1,4 +1,4 @@
1
- require "#{File.dirname(__FILE__)}/../spec_helper"
1
+ require "#{File.dirname(__FILE__)}/../../spec_helper"
2
2
 
3
3
 
4
4
  describe 'Comment, Integration' do
@@ -44,29 +44,40 @@ describe 'Comment, Integration' do
44
44
  expect { clazz.new(source) }.to raise_error(/'cuke_modeler_stand_alone_comment\.feature'/)
45
45
  end
46
46
 
47
- it 'stores the original data generated by the parsing adapter', :gherkin4 => true do
48
- comment = clazz.new('# a comment')
49
- data = comment.parsing_data
47
+ describe 'parsing data' do
50
48
 
51
- expect(data.keys).to match_array([:type, :location, :text])
52
- expect(data[:type]).to eq(:Comment)
53
- end
49
+ it 'stores the original data generated by the parsing adapter', :if => gherkin?(6, 7, 8, 9) do
50
+ comment = clazz.new('# a comment')
51
+ data = comment.parsing_data
54
52
 
55
- it 'stores the original data generated by the parsing adapter', :gherkin3 => true do
56
- comment = clazz.new('# a comment')
57
- data = comment.parsing_data
53
+ expect(data.keys).to match_array([:location, :text])
54
+ expect(data[:text]).to eq('# a comment')
55
+ end
58
56
 
59
- expect(data.keys).to match_array([:type, :location, :text])
60
- expect(data[:type]).to eq('Comment')
61
- end
57
+ it 'stores the original data generated by the parsing adapter', :if => gherkin?(4, 5) do
58
+ comment = clazz.new('# a comment')
59
+ data = comment.parsing_data
62
60
 
63
- it 'stores the original data generated by the parsing adapter', :gherkin2 => true do
64
- comment = clazz.new('# a comment')
65
- data = comment.parsing_data
61
+ expect(data.keys).to match_array([:type, :location, :text])
62
+ expect(data[:type]).to eq(:Comment)
63
+ end
66
64
 
67
- expect(data.keys).to match_array(['value', 'line'])
68
- end
65
+ it 'stores the original data generated by the parsing adapter', :if => gherkin?(3) do
66
+ comment = clazz.new('# a comment')
67
+ data = comment.parsing_data
69
68
 
69
+ expect(data.keys).to match_array([:type, :location, :text])
70
+ expect(data[:type]).to eq('Comment')
71
+ end
72
+
73
+ it 'stores the original data generated by the parsing adapter', :if => gherkin?(2) do
74
+ comment = clazz.new('# a comment')
75
+ data = comment.parsing_data
76
+
77
+ expect(data.keys).to match_array(['value', 'line'])
78
+ end
79
+
80
+ end
70
81
 
71
82
  describe 'getting ancestors' do
72
83
 
@@ -77,7 +88,7 @@ describe 'Comment, Integration' do
77
88
 
78
89
  let(:test_directory) { CukeModeler::FileHelper.create_directory }
79
90
  let(:source_gherkin) { "# feature comment
80
- #{@feature_keyword}: Test feature"
91
+ #{FEATURE_KEYWORD}: Test feature"
81
92
  }
82
93
 
83
94
  let(:directory_model) { CukeModeler::Directory.new(test_directory) }
@@ -119,7 +130,7 @@ describe 'Comment, Integration' do
119
130
 
120
131
  it "models the comment's source line" do
121
132
  source_text = "# a comment
122
- #{@feature_keyword}:"
133
+ #{FEATURE_KEYWORD}:"
123
134
 
124
135
  test_file_path = CukeModeler::FileHelper.create_feature_file(:text => source_text, :name => 'comment_test_file')
125
136
  comment = CukeModeler::FeatureFile.new(test_file_path).comments.first
@@ -1,4 +1,4 @@
1
- require "#{File.dirname(__FILE__)}/../spec_helper"
1
+ require "#{File.dirname(__FILE__)}/../../spec_helper"
2
2
 
3
3
 
4
4
  describe 'Directory, Integration' do
@@ -46,7 +46,7 @@ describe 'Directory, Integration' do
46
46
  before(:each) do
47
47
  feature_files.each do |file_name|
48
48
  # Some versions of Gherkin require feature content to be present in feature files
49
- CukeModeler::FileHelper.create_feature_file(:text => "#{@feature_keyword}: Test feature", :name => file_name, :directory => directory_path)
49
+ CukeModeler::FileHelper.create_feature_file(:text => "#{FEATURE_KEYWORD}: Test feature", :name => file_name, :directory => directory_path)
50
50
  end
51
51
 
52
52
  non_feature_files.each do |file_name|
@@ -146,7 +146,7 @@ describe 'Directory, Integration' do
146
146
  directory_path = CukeModeler::FileHelper.create_directory
147
147
  _nested_directory_path = CukeModeler::FileHelper.create_directory(:name => 'nested_directory', :directory => directory_path)
148
148
 
149
- CukeModeler::FileHelper.create_feature_file(:text => "#{@feature_keyword}: Test feature", :name => 'test_file', :directory => directory_path)
149
+ CukeModeler::FileHelper.create_feature_file(:text => "#{FEATURE_KEYWORD}: Test feature", :name => 'test_file', :directory => directory_path)
150
150
 
151
151
 
152
152
  directory_model = clazz.new(directory_path)
@@ -1,4 +1,4 @@
1
- require "#{File.dirname(__FILE__)}/../spec_helper"
1
+ require "#{File.dirname(__FILE__)}/../../spec_helper"
2
2
 
3
3
 
4
4
  describe 'DocString, Integration' do
@@ -43,28 +43,32 @@ describe 'DocString, Integration' do
43
43
  expect { clazz.new(source) }.to raise_error(/'cuke_modeler_stand_alone_doc_string\.feature'/)
44
44
  end
45
45
 
46
- it 'stores the original data generated by the parsing adapter', :gherkin4 => true do
47
- doc_string = clazz.new("\"\"\" content type\nsome doc string\n\"\"\"")
48
- data = doc_string.parsing_data
46
+ describe 'parsing data' do
49
47
 
50
- expect(data.keys).to match_array([:type, :location, :content, :contentType])
51
- expect(data[:type]).to eq(:DocString)
52
- end
48
+ it 'stores the original data generated by the parsing adapter', :if => gherkin?(6, 7, 8, 9) do
49
+ doc_string = clazz.new("\"\"\" content type\nsome doc string\n\"\"\"")
50
+ data = doc_string.parsing_data
53
51
 
54
- it 'stores the original data generated by the parsing adapter', :gherkin3 => true do
55
- doc_string = clazz.new("\"\"\" content type\nsome doc string\n\"\"\"")
56
- data = doc_string.parsing_data
52
+ expect(data.keys).to match_array([:location, :content, :content_type, :delimiter])
53
+ expect(data[:content]).to eq('some doc string')
54
+ end
57
55
 
58
- expect(data.keys).to match_array([:type, :location, :content, :contentType])
59
- expect(data[:type]).to eq(:DocString)
60
- end
56
+ it 'stores the original data generated by the parsing adapter', :if => gherkin?(3, 4, 5) do
57
+ doc_string = clazz.new("\"\"\" content type\nsome doc string\n\"\"\"")
58
+ data = doc_string.parsing_data
61
59
 
62
- it 'stores the original data generated by the parsing adapter', :gherkin2 => true do
63
- doc_string = clazz.new("\"\"\" content type\nsome doc string\n\"\"\"")
64
- data = doc_string.parsing_data
60
+ expect(data.keys).to match_array([:type, :location, :content, :contentType])
61
+ expect(data[:type]).to eq(:DocString)
62
+ end
63
+
64
+ it 'stores the original data generated by the parsing adapter', :if => gherkin?(2) do
65
+ doc_string = clazz.new("\"\"\" content type\nsome doc string\n\"\"\"")
66
+ data = doc_string.parsing_data
67
+
68
+ expect(data.keys).to match_array(['value', 'content_type', 'line'])
69
+ expect(data['value']).to eq('some doc string')
70
+ end
65
71
 
66
- expect(data.keys).to match_array(['value', 'content_type', 'line'])
67
- expect(data['value']).to eq('some doc string')
68
72
  end
69
73
 
70
74
  it 'stores its content as a String' do
@@ -85,10 +89,10 @@ describe 'DocString, Integration' do
85
89
 
86
90
 
87
91
  let(:test_directory) { CukeModeler::FileHelper.create_directory }
88
- let(:source_gherkin) { "#{@feature_keyword}: Test feature
92
+ let(:source_gherkin) { "#{FEATURE_KEYWORD}: Test feature
89
93
 
90
- #{@scenario_keyword}: Test test
91
- #{@step_keyword} a big step:
94
+ #{SCENARIO_KEYWORD}: Test test
95
+ #{STEP_KEYWORD} a big step:
92
96
  \"\"\"
93
97
  a
94
98
  doc
@@ -121,10 +125,10 @@ describe 'DocString, Integration' do
121
125
  context 'a doc string that is part of a scenario' do
122
126
 
123
127
  let(:test_directory) { CukeModeler::FileHelper.create_directory }
124
- let(:source_gherkin) { "#{@feature_keyword}: Test feature
128
+ let(:source_gherkin) { "#{FEATURE_KEYWORD}: Test feature
125
129
 
126
- #{@scenario_keyword}: Test test
127
- #{@step_keyword} a big step:
130
+ #{SCENARIO_KEYWORD}: Test test
131
+ #{STEP_KEYWORD} a big step:
128
132
  \"\"\"
129
133
  a
130
134
  doc
@@ -147,16 +151,16 @@ describe 'DocString, Integration' do
147
151
  context 'a doc string that is part of an outline' do
148
152
 
149
153
  let(:test_directory) { CukeModeler::FileHelper.create_directory }
150
- let(:source_gherkin) { "#{@feature_keyword}: Test feature
154
+ let(:source_gherkin) { "#{FEATURE_KEYWORD}: Test feature
151
155
 
152
- #{@outline_keyword}: Test outline
153
- #{@step_keyword} a big step:
156
+ #{OUTLINE_KEYWORD}: Test outline
157
+ #{STEP_KEYWORD} a big step:
154
158
  \"\"\"
155
159
  a
156
160
  doc
157
161
  string
158
162
  \"\"\"
159
- #{@example_keyword}:
163
+ #{EXAMPLE_KEYWORD}:
160
164
  | param |
161
165
  | value |"
162
166
  }
@@ -176,10 +180,10 @@ describe 'DocString, Integration' do
176
180
  context 'a doc string that is part of a background' do
177
181
 
178
182
  let(:test_directory) { CukeModeler::FileHelper.create_directory }
179
- let(:source_gherkin) { "#{@feature_keyword}: Test feature
183
+ let(:source_gherkin) { "#{FEATURE_KEYWORD}: Test feature
180
184
 
181
- #{@background_keyword}: Test background
182
- #{@step_keyword} a big step:
185
+ #{BACKGROUND_KEYWORD}: Test background
186
+ #{STEP_KEYWORD} a big step:
183
187
  \"\"\"
184
188
  a
185
189
  doc
@@ -253,10 +257,10 @@ describe 'DocString, Integration' do
253
257
  end
254
258
 
255
259
  it "models the doc string's source line" do
256
- source_text = "#{@feature_keyword}:
260
+ source_text = "#{FEATURE_KEYWORD}:
257
261
 
258
- #{@scenario_keyword}:
259
- #{@step_keyword} step
262
+ #{SCENARIO_KEYWORD}:
263
+ #{STEP_KEYWORD} step
260
264
  \"\"\"
261
265
  foo
262
266
  \"\"\""
@@ -274,7 +278,7 @@ describe 'DocString, Integration' do
274
278
 
275
279
  it 'can be remade from its own output' do
276
280
  source = ['"""" the type',
277
- "#{@step_keyword} a step",
281
+ "#{STEP_KEYWORD} a step",
278
282
  ' \"\"\"',
279
283
  ' that also has a doc string',
280
284
  ' \"\"\"',
@@ -1,4 +1,4 @@
1
- require "#{File.dirname(__FILE__)}/../spec_helper"
1
+ require "#{File.dirname(__FILE__)}/../../spec_helper"
2
2
 
3
3
 
4
4
  describe 'Example, Integration' do
@@ -15,22 +15,22 @@ describe 'Example, Integration' do
15
15
 
16
16
  describe 'unique behavior' do
17
17
 
18
- it 'can be instantiated with the minimum viable Gherkin', :gherkin4 => true do
19
- source = "#{@example_keyword}:"
18
+ it 'can be instantiated with the minimum viable Gherkin', :if => gherkin?(4, 5, 6, 7, 8, 9) do
19
+ source = "#{EXAMPLE_KEYWORD}:"
20
20
 
21
21
  expect { @model = clazz.new(source) }.to_not raise_error
22
22
  end
23
23
 
24
- it 'can be instantiated with the minimum viable Gherkin', :gherkin3 => true do
25
- source = "#{@example_keyword}:
24
+ it 'can be instantiated with the minimum viable Gherkin', :if => gherkin?(3) do
25
+ source = "#{EXAMPLE_KEYWORD}:
26
26
  |param|
27
27
  |value|"
28
28
 
29
29
  expect { @model = clazz.new(source) }.to_not raise_error
30
30
  end
31
31
 
32
- it 'can be instantiated with the minimum viable Gherkin', :gherkin2 => true do
33
- source = "#{@example_keyword}:
32
+ it 'can be instantiated with the minimum viable Gherkin', :if => gherkin?(2) do
33
+ source = "#{EXAMPLE_KEYWORD}:
34
34
  |param|"
35
35
 
36
36
  expect { @model = clazz.new(source) }.to_not raise_error
@@ -55,28 +55,32 @@ describe 'Example, Integration' do
55
55
  end
56
56
  end
57
57
 
58
- it 'stores the original data generated by the parsing adapter', :gherkin4 => true do
59
- example = clazz.new("@tag\n#{@example_keyword}: test example\ndescription\n|param|\n|value|")
60
- data = example.parsing_data
58
+ describe 'parsing data' do
61
59
 
62
- expect(data.keys).to match_array([:type, :tags, :location, :keyword, :name, :tableHeader, :tableBody, :description])
63
- expect(data[:type]).to eq(:Examples)
64
- end
60
+ it 'stores the original data generated by the parsing adapter', :if => gherkin?(6, 7, 8, 9) do
61
+ example = clazz.new("@tag\n#{EXAMPLE_KEYWORD}: test example\ndescription\n|param|\n|value|")
62
+ data = example.parsing_data
65
63
 
66
- it 'stores the original data generated by the parsing adapter', :gherkin3 => true do
67
- example = clazz.new("@tag\n#{@example_keyword}: test example\ndescription\n|param|\n|value|")
68
- data = example.parsing_data
64
+ expect(data.keys).to match_array([:tags, :location, :keyword, :name, :table_header, :table_body, :description])
65
+ expect(data[:name]).to eq('test example')
66
+ end
69
67
 
70
- expect(data.keys).to match_array([:type, :tags, :location, :keyword, :name, :tableHeader, :tableBody, :description])
71
- expect(data[:type]).to eq(:Examples)
72
- end
68
+ it 'stores the original data generated by the parsing adapter', :if => gherkin?(3, 4, 5) do
69
+ example = clazz.new("@tag\n#{EXAMPLE_KEYWORD}: test example\ndescription\n|param|\n|value|")
70
+ data = example.parsing_data
73
71
 
74
- it 'stores the original data generated by the parsing adapter', :gherkin2 => true do
75
- example = clazz.new("@tag\n#{@example_keyword}: test example\ndescription\n|param|\n|value|")
76
- data = example.parsing_data
72
+ expect(data.keys).to match_array([:type, :tags, :location, :keyword, :name, :tableHeader, :tableBody, :description])
73
+ expect(data[:type]).to eq(:Examples)
74
+ end
75
+
76
+ it 'stores the original data generated by the parsing adapter', :if => gherkin?(2) do
77
+ example = clazz.new("@tag\n#{EXAMPLE_KEYWORD}: test example\ndescription\n|param|\n|value|")
78
+ data = example.parsing_data
79
+
80
+ expect(data.keys).to match_array(['keyword', 'name', 'line', 'description', 'id', 'rows', 'tags'])
81
+ expect(data['keyword']).to eq('Examples')
82
+ end
77
83
 
78
- expect(data.keys).to match_array(['keyword', 'name', 'line', 'description', 'id', 'rows', 'tags'])
79
- expect(data['keyword']).to eq('Examples')
80
84
  end
81
85
 
82
86
  it 'provides a descriptive filename when being parsed from stand alone text' do
@@ -86,7 +90,7 @@ describe 'Example, Integration' do
86
90
  end
87
91
 
88
92
  it 'trims whitespace from its source description' do
89
- source = ["#{@example_keyword}:",
93
+ source = ["#{EXAMPLE_KEYWORD}:",
90
94
  ' ',
91
95
  ' description line 1',
92
96
  '',
@@ -113,21 +117,43 @@ describe 'Example, Integration' do
113
117
 
114
118
  context 'from source text' do
115
119
 
116
- let(:source_text) { "#{@example_keyword}:" }
120
+ let(:source_text) { "#{EXAMPLE_KEYWORD}:" }
117
121
  let(:example) { clazz.new(source_text) }
118
122
 
119
123
 
120
124
  # gherkin 2.x/3.x does not accept incomplete examples
121
- it "models the example's keyword", :gherkin2 => false, :gherkin3 => false do
122
- expect(example.keyword).to eq("#{@example_keyword}")
125
+ it "models the example's keyword", :unless => gherkin?(2, 3) do
126
+ expect(example.keyword).to eq("#{EXAMPLE_KEYWORD}")
127
+ end
128
+
129
+ context 'using gherkin 2.x', :if => gherkin?(2) do
130
+
131
+ let(:source_text) { "#{EXAMPLE_KEYWORD}:\n|param|" }
132
+ let(:example) { clazz.new(source_text) }
133
+
134
+ it "models the example's keyword" do
135
+ expect(example.keyword).to eq(EXAMPLE_KEYWORD)
136
+ end
137
+
138
+ end
139
+
140
+ context 'using gherkin 3.x', :if => gherkin?(3) do
141
+
142
+ let(:source_text) { "#{EXAMPLE_KEYWORD}:\n|param|\n|value|" }
143
+ let(:example) { clazz.new(source_text) }
144
+
145
+ it "models the example's keyword" do
146
+ expect(example.keyword).to eq(EXAMPLE_KEYWORD)
147
+ end
148
+
123
149
  end
124
150
 
125
151
  it "models the example's source line" do
126
- source_text = "#{@feature_keyword}:
152
+ source_text = "#{FEATURE_KEYWORD}:
127
153
 
128
- #{@outline_keyword}:
129
- #{@step_keyword} step
130
- #{@example_keyword}:
154
+ #{OUTLINE_KEYWORD}:
155
+ #{STEP_KEYWORD} step
156
+ #{EXAMPLE_KEYWORD}:
131
157
  | param |
132
158
  | value |"
133
159
  example = CukeModeler::Feature.new(source_text).tests.first.examples.first
@@ -139,7 +165,7 @@ describe 'Example, Integration' do
139
165
  context 'a filled example' do
140
166
 
141
167
  let(:source_text) { "@tag1 @tag2 @tag3
142
- #{@example_keyword}: test example
168
+ #{EXAMPLE_KEYWORD}: test example
143
169
 
144
170
  Some example description.
145
171
 
@@ -183,9 +209,9 @@ describe 'Example, Integration' do
183
209
  end
184
210
 
185
211
  # gherkin 2.x/3.x does not accept incomplete examples
186
- context 'an empty example', :gherkin2 => false, :gherkin3 => false do
212
+ context 'an empty example', :unless => gherkin?(2, 3) do
187
213
 
188
- let(:source_text) { "#{@example_keyword}:" }
214
+ let(:source_text) { "#{EXAMPLE_KEYWORD}:" }
189
215
  let(:example) { clazz.new(source_text) }
190
216
 
191
217
 
@@ -214,7 +240,7 @@ describe 'Example, Integration' do
214
240
 
215
241
  it 'properly sets its child models' do
216
242
  source = "@a_tag
217
- #{@example_keyword}:
243
+ #{EXAMPLE_KEYWORD}:
218
244
  | param |
219
245
  | value 1 |"
220
246
 
@@ -228,7 +254,7 @@ describe 'Example, Integration' do
228
254
  end
229
255
 
230
256
  it 'does not include the parameter row when accessing argument rows' do
231
- source = "#{@example_keyword}:\n|param1|param2|\n|value1|value2|\n|value3|value4|"
257
+ source = "#{EXAMPLE_KEYWORD}:\n|param1|param2|\n|value1|value2|\n|value3|value4|"
232
258
  example = clazz.new(source)
233
259
 
234
260
  rows = example.argument_rows
@@ -238,7 +264,7 @@ describe 'Example, Integration' do
238
264
  end
239
265
 
240
266
  it 'does not include argument rows when accessing the parameter row' do
241
- source = "#{@example_keyword}:\n|param1|param2|\n|value1|value2|\n|value3|value4|"
267
+ source = "#{EXAMPLE_KEYWORD}:\n|param1|param2|\n|value1|value2|\n|value3|value4|"
242
268
  example = clazz.new(source)
243
269
 
244
270
  row = example.parameter_row
@@ -251,7 +277,7 @@ describe 'Example, Integration' do
251
277
  describe 'adding rows' do
252
278
 
253
279
  it 'can add a new row as a hash, string values' do
254
- source = "#{@example_keyword}:\n|param1|param2|\n|value1|value2|"
280
+ source = "#{EXAMPLE_KEYWORD}:\n|param1|param2|\n|value1|value2|"
255
281
  example = clazz.new(source)
256
282
 
257
283
  new_row = {'param1' => 'value3', 'param2' => 'value4'}
@@ -262,7 +288,7 @@ describe 'Example, Integration' do
262
288
  end
263
289
 
264
290
  it 'can add a new row as a hash, non-string values' do
265
- source = "#{@example_keyword}:\n|param1|param2|\n|value1|value2|"
291
+ source = "#{EXAMPLE_KEYWORD}:\n|param1|param2|\n|value1|value2|"
266
292
  example = clazz.new(source)
267
293
 
268
294
  new_row = {:param1 => 'value3', 'param2' => 4}
@@ -273,7 +299,7 @@ describe 'Example, Integration' do
273
299
  end
274
300
 
275
301
  it 'can add a new row as a hash, random key order' do
276
- source = "#{@example_keyword}:\n|param1|param2|\n|value1|value2|"
302
+ source = "#{EXAMPLE_KEYWORD}:\n|param1|param2|\n|value1|value2|"
277
303
  example = clazz.new(source)
278
304
 
279
305
  new_row = {'param2' => 'value4', 'param1' => 'value3'}
@@ -284,7 +310,7 @@ describe 'Example, Integration' do
284
310
  end
285
311
 
286
312
  it 'can add a new row as an array, string values' do
287
- source = "#{@example_keyword}:\n|param1|param2|\n|value1|value2|"
313
+ source = "#{EXAMPLE_KEYWORD}:\n|param1|param2|\n|value1|value2|"
288
314
  example = clazz.new(source)
289
315
 
290
316
  new_row = ['value3', 'value4']
@@ -295,7 +321,7 @@ describe 'Example, Integration' do
295
321
  end
296
322
 
297
323
  it 'can add a new row as an array, non-string values' do
298
- source = "#{@example_keyword}:\n|param1|param2|param3|\n|value1|value2|value3|"
324
+ source = "#{EXAMPLE_KEYWORD}:\n|param1|param2|param3|\n|value1|value2|value3|"
299
325
  example = clazz.new(source)
300
326
 
301
327
  new_row = [:value4, 5, 'value6']
@@ -306,7 +332,7 @@ describe 'Example, Integration' do
306
332
  end
307
333
 
308
334
  it 'can only use a Hash or an Array to add a new row' do
309
- source = "#{@example_keyword}:\n|param|\n|value|"
335
+ source = "#{EXAMPLE_KEYWORD}:\n|param|\n|value|"
310
336
  example = clazz.new(source)
311
337
 
312
338
  expect { example.add_row({}) }.to_not raise_error
@@ -315,7 +341,7 @@ describe 'Example, Integration' do
315
341
  end
316
342
 
317
343
  it 'trims whitespace from added rows' do
318
- source = "#{@example_keyword}:\n|param1|param2|\n|value1|value2|"
344
+ source = "#{EXAMPLE_KEYWORD}:\n|param1|param2|\n|value1|value2|"
319
345
  example = clazz.new(source)
320
346
 
321
347
  hash_row = {'param1' => 'value3 ', 'param2' => ' value4'}
@@ -339,7 +365,7 @@ describe 'Example, Integration' do
339
365
  end
340
366
 
341
367
  it 'does not modify its row input' do
342
- source = "#{@example_keyword}:\n|param1|param2|\n|value1|value2|"
368
+ source = "#{EXAMPLE_KEYWORD}:\n|param1|param2|\n|value1|value2|"
343
369
  example = clazz.new(source)
344
370
 
345
371
  array_row = ['value1'.freeze, 'value2'.freeze].freeze
@@ -355,7 +381,7 @@ describe 'Example, Integration' do
355
381
  describe 'removing rows' do
356
382
 
357
383
  it 'can remove an existing row as a hash' do
358
- source = "#{@example_keyword}:\n|param1|param2|\n|value1|value2|\n|value3|value4|"
384
+ source = "#{EXAMPLE_KEYWORD}:\n|param1|param2|\n|value1|value2|\n|value3|value4|"
359
385
  example = clazz.new(source)
360
386
 
361
387
  old_row = {'param1' => 'value3', 'param2' => 'value4'}
@@ -366,7 +392,7 @@ describe 'Example, Integration' do
366
392
  end
367
393
 
368
394
  it 'can remove an existing row as a hash, random key order' do
369
- source = "#{@example_keyword}:\n|param1|param2|\n|value1|value2|\n|value3|value4|"
395
+ source = "#{EXAMPLE_KEYWORD}:\n|param1|param2|\n|value1|value2|\n|value3|value4|"
370
396
  example = clazz.new(source)
371
397
 
372
398
  old_row = {'param2' => 'value4', 'param1' => 'value3'}
@@ -377,7 +403,7 @@ describe 'Example, Integration' do
377
403
  end
378
404
 
379
405
  it 'can remove an existing row as an array' do
380
- source = "#{@example_keyword}:\n|param1|param2|\n|value1|value2|\n|value3|value4|"
406
+ source = "#{EXAMPLE_KEYWORD}:\n|param1|param2|\n|value1|value2|\n|value3|value4|"
381
407
  example = clazz.new(source)
382
408
 
383
409
  old_row = ['value3', 'value4']
@@ -394,7 +420,7 @@ describe 'Example, Integration' do
394
420
  end
395
421
 
396
422
  it 'trims whitespace from removed rows' do
397
- source = "#{@example_keyword}:\n|param1|param2|\n|value1|value2|\n|value3|value4|\n|value5|value6|"
423
+ source = "#{EXAMPLE_KEYWORD}:\n|param1|param2|\n|value1|value2|\n|value3|value4|\n|value5|value6|"
398
424
  example = clazz.new(source)
399
425
 
400
426
  # These will affect different rows
@@ -417,7 +443,7 @@ describe 'Example, Integration' do
417
443
  end
418
444
 
419
445
  it 'will not remove the parameter row' do
420
- source = "#{@example_keyword}:\n|param1|param2|\n|value1|value2|"
446
+ source = "#{EXAMPLE_KEYWORD}:\n|param1|param2|\n|value1|value2|"
421
447
  example = clazz.new(source)
422
448
 
423
449
  hash_row = {'param1' => 'param1', 'param2' => 'param2'}
@@ -435,7 +461,7 @@ describe 'Example, Integration' do
435
461
  end
436
462
 
437
463
  it 'will remove an argument row that is the same as the parameter row' do
438
- source = "#{@example_keyword}:\n|param1|param2|\n|value1|value2|\n|param1|param2|"
464
+ source = "#{EXAMPLE_KEYWORD}:\n|param1|param2|\n|value1|value2|\n|param1|param2|"
439
465
  example = clazz.new(source)
440
466
 
441
467
  hash_row = {'param1' => 'param1', 'param2' => 'param2'}
@@ -463,11 +489,11 @@ describe 'Example, Integration' do
463
489
 
464
490
 
465
491
  let(:test_directory) { CukeModeler::FileHelper.create_directory }
466
- let(:source_gherkin) { "#{@feature_keyword}: Test feature
492
+ let(:source_gherkin) { "#{FEATURE_KEYWORD}: Test feature
467
493
 
468
- #{@outline_keyword}: Test test
469
- #{@step_keyword} a step
470
- #{@example_keyword}: Test example
494
+ #{OUTLINE_KEYWORD}: Test test
495
+ #{STEP_KEYWORD} a step
496
+ #{EXAMPLE_KEYWORD}: Test example
471
497
  | a param |
472
498
  | a value |"
473
499
  }
@@ -497,11 +523,11 @@ describe 'Example, Integration' do
497
523
  context 'an example that is part of an outline' do
498
524
 
499
525
  let(:test_directory) { CukeModeler::FileHelper.create_directory }
500
- let(:source_gherkin) { "#{@feature_keyword}: Test feature
526
+ let(:source_gherkin) { "#{FEATURE_KEYWORD}: Test feature
501
527
 
502
- #{@outline_keyword}: Test outline
503
- #{@step_keyword} a step
504
- #{@example_keyword}:
528
+ #{OUTLINE_KEYWORD}: Test outline
529
+ #{STEP_KEYWORD} a step
530
+ #{EXAMPLE_KEYWORD}:
505
531
  | param |
506
532
  | value |"
507
533
  }
@@ -531,7 +557,7 @@ describe 'Example, Integration' do
531
557
 
532
558
  it 'can be remade from its own output' do
533
559
  source = "@tag1 @tag2 @tag3
534
- #{@example_keyword}: with everything it could have
560
+ #{EXAMPLE_KEYWORD}: with everything it could have
535
561
 
536
562
  Some description.
537
563
  Some more description.
@@ -553,7 +579,7 @@ describe 'Example, Integration' do
553
579
  # and it is possible that during that process it messes up the cell's output.
554
580
 
555
581
  it 'can correctly output a row that has special characters in it' do
556
- source = ["#{@example_keyword}:",
582
+ source = ["#{EXAMPLE_KEYWORD}:",
557
583
  ' | param with \| |',
558
584
  ' | a value with \| and \\\\ |',
559
585
  ' | a value with \\\\ |']
@@ -562,7 +588,7 @@ describe 'Example, Integration' do
562
588
 
563
589
  example_output = example.to_s.split("\n", -1)
564
590
 
565
- expect(example_output).to eq(["#{@example_keyword}:",
591
+ expect(example_output).to eq(["#{EXAMPLE_KEYWORD}:",
566
592
  ' | param with \| |',
567
593
  ' | a value with \| and \\\\ |',
568
594
  ' | a value with \\\\ |'])
@@ -572,30 +598,30 @@ describe 'Example, Integration' do
572
598
  context 'from source text' do
573
599
 
574
600
  # gherkin 2.x/3.x does not accept incomplete examples
575
- it 'can output an empty example', :gherkin2 => false, :gherkin3 => false do
576
- source = ["#{@example_keyword}:"]
601
+ it 'can output an empty example', :unless => gherkin?(2, 3) do
602
+ source = ["#{EXAMPLE_KEYWORD}:"]
577
603
  source = source.join("\n")
578
604
  example = clazz.new(source)
579
605
 
580
606
  example_output = example.to_s.split("\n", -1)
581
607
 
582
- expect(example_output).to eq(["#{@example_keyword}:"])
608
+ expect(example_output).to eq(["#{EXAMPLE_KEYWORD}:"])
583
609
  end
584
610
 
585
611
  # gherkin 2.x/3.x does not accept incomplete examples
586
- it 'can output an example that has a name', :gherkin2 => false, :gherkin3 => false do
587
- source = ["#{@example_keyword}: test example"]
612
+ it 'can output an example that has a name', :unless => gherkin?(2, 3) do
613
+ source = ["#{EXAMPLE_KEYWORD}: test example"]
588
614
  source = source.join("\n")
589
615
  example = clazz.new(source)
590
616
 
591
617
  example_output = example.to_s.split("\n", -1)
592
618
 
593
- expect(example_output).to eq(["#{@example_keyword}: test example"])
619
+ expect(example_output).to eq(["#{EXAMPLE_KEYWORD}: test example"])
594
620
  end
595
621
 
596
622
  # gherkin 2.x/3.x does not accept incomplete examples
597
- it 'can output an example that has a description', :gherkin2 => false, :gherkin3 => false do
598
- source = ["#{@example_keyword}:",
623
+ it 'can output an example that has a description', :unless => gherkin?(2, 3) do
624
+ source = ["#{EXAMPLE_KEYWORD}:",
599
625
  'Some description.',
600
626
  'Some more description.']
601
627
  source = source.join("\n")
@@ -603,7 +629,7 @@ describe 'Example, Integration' do
603
629
 
604
630
  example_output = example.to_s.split("\n", -1)
605
631
 
606
- expect(example_output).to eq(["#{@example_keyword}:",
632
+ expect(example_output).to eq(["#{EXAMPLE_KEYWORD}:",
607
633
  '',
608
634
  'Some description.',
609
635
  'Some more description.'])
@@ -611,20 +637,20 @@ describe 'Example, Integration' do
611
637
 
612
638
 
613
639
  # gherkin 3.x does not accept incomplete examples
614
- it 'can output an example that has a single row', :gherkin3 => false do
615
- source = ["#{@example_keyword}:",
640
+ it 'can output an example that has a single row', :unless => gherkin?(3) do
641
+ source = ["#{EXAMPLE_KEYWORD}:",
616
642
  '|param1|param2|']
617
643
  source = source.join("\n")
618
644
  example = clazz.new(source)
619
645
 
620
646
  example_output = example.to_s.split("\n", -1)
621
647
 
622
- expect(example_output).to eq(["#{@example_keyword}:",
648
+ expect(example_output).to eq(["#{EXAMPLE_KEYWORD}:",
623
649
  ' | param1 | param2 |'])
624
650
  end
625
651
 
626
652
  it 'can output an example that has multiple rows' do
627
- source = ["#{@example_keyword}:",
653
+ source = ["#{EXAMPLE_KEYWORD}:",
628
654
  '|param1|param2|',
629
655
  '|value1|value2|',
630
656
  '|value3|value4|']
@@ -633,7 +659,7 @@ describe 'Example, Integration' do
633
659
 
634
660
  example_output = example.to_s.split("\n", -1)
635
661
 
636
- expect(example_output).to eq(["#{@example_keyword}:",
662
+ expect(example_output).to eq(["#{EXAMPLE_KEYWORD}:",
637
663
  ' | param1 | param2 |',
638
664
  ' | value1 | value2 |',
639
665
  ' | value3 | value4 |'])
@@ -642,7 +668,7 @@ describe 'Example, Integration' do
642
668
  it 'can output an example that has tags' do
643
669
  source = ['@tag1',
644
670
  '@tag2 @tag3',
645
- "#{@example_keyword}:",
671
+ "#{EXAMPLE_KEYWORD}:",
646
672
  '|param1|param2|',
647
673
  '|value1|value2|',
648
674
  '|value3|value4|']
@@ -652,7 +678,7 @@ describe 'Example, Integration' do
652
678
  example_output = example.to_s.split("\n", -1)
653
679
 
654
680
  expect(example_output).to eq(['@tag1 @tag2 @tag3',
655
- "#{@example_keyword}:",
681
+ "#{EXAMPLE_KEYWORD}:",
656
682
  ' | param1 | param2 |',
657
683
  ' | value1 | value2 |',
658
684
  ' | value3 | value4 |'])
@@ -661,7 +687,7 @@ describe 'Example, Integration' do
661
687
  it 'can output an example that has everything' do
662
688
  source = ['@tag1',
663
689
  '@tag2 @tag3',
664
- "#{@example_keyword}: with everything it could have",
690
+ "#{EXAMPLE_KEYWORD}: with everything it could have",
665
691
  'Some description.',
666
692
  'Some more description.',
667
693
  '|param1|param2|',
@@ -673,7 +699,7 @@ describe 'Example, Integration' do
673
699
  example_output = example.to_s.split("\n", -1)
674
700
 
675
701
  expect(example_output).to eq(['@tag1 @tag2 @tag3',
676
- "#{@example_keyword}: with everything it could have",
702
+ "#{EXAMPLE_KEYWORD}: with everything it could have",
677
703
  '',
678
704
  'Some description.',
679
705
  'Some more description.',
@@ -684,7 +710,7 @@ describe 'Example, Integration' do
684
710
  end
685
711
 
686
712
  it 'buffers row cells based on the longest value in a column' do
687
- source = "#{@example_keyword}:
713
+ source = "#{EXAMPLE_KEYWORD}:
688
714
  |parameter 1| x|
689
715
  |y|value 1|
690
716
  |a|b|"
@@ -692,7 +718,7 @@ describe 'Example, Integration' do
692
718
 
693
719
  example_output = example.to_s.split("\n", -1)
694
720
 
695
- expect(example_output).to eq(["#{@example_keyword}:",
721
+ expect(example_output).to eq(["#{EXAMPLE_KEYWORD}:",
696
722
  ' | parameter 1 | x |',
697
723
  ' | y | value 1 |',
698
724
  ' | a | b |'])