cuke_modeler 0.0.2 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +23 -0
- data/Gemfile +22 -4
- data/History.rdoc +6 -0
- data/Rakefile +26 -26
- data/cuke_modeler.gemspec +3 -1
- data/features/modeling/{background_modeling.feature → gherkin/background_modeling.feature} +1 -11
- data/features/modeling/{background_output.feature → gherkin/background_output.feature} +1 -0
- data/features/modeling/{directory_modeling.feature → gherkin/directory_modeling.feature} +1 -11
- data/features/modeling/{directory_output.feature → gherkin/directory_output.feature} +1 -0
- data/features/modeling/{doc_string_modeling.feature → gherkin/doc_string_modeling.feature} +1 -11
- data/features/modeling/{doc_string_output.feature → gherkin/doc_string_output.feature} +1 -0
- data/features/modeling/{example_modeling.feature → gherkin/example_modeling.feature} +1 -11
- data/features/modeling/{example_output.feature → gherkin/example_output.feature} +1 -0
- data/features/modeling/{feature_file_modeling.feature → gherkin/feature_file_modeling.feature} +1 -11
- data/features/modeling/{feature_file_output.feature → gherkin/feature_file_output.feature} +1 -0
- data/features/modeling/{feature_modeling.feature → gherkin/feature_modeling.feature} +1 -11
- data/features/modeling/{feature_output.feature → gherkin/feature_output.feature} +1 -0
- data/features/modeling/{outline_modeling.feature → gherkin/outline_modeling.feature} +1 -11
- data/features/modeling/{outline_output.feature → gherkin/outline_output.feature} +1 -0
- data/features/modeling/{row_modeling.feature → gherkin/row_modeling.feature} +1 -10
- data/features/modeling/{row_output.feature → gherkin/row_output.feature} +1 -0
- data/features/modeling/{scenario_modeling.feature → gherkin/scenario_modeling.feature} +1 -11
- data/features/modeling/{scenario_output.feature → gherkin/scenario_output.feature} +1 -0
- data/features/modeling/{step_modeling.feature → gherkin/step_modeling.feature} +1 -11
- data/features/modeling/{step_output.feature → gherkin/step_output.feature} +1 -0
- data/features/modeling/{table_modeling.feature → gherkin/table_modeling.feature} +1 -11
- data/features/modeling/{table_output.feature → gherkin/table_output.feature} +1 -0
- data/features/modeling/{table_row_modeling.feature → gherkin/table_row_modeling.feature} +1 -11
- data/features/modeling/{table_row_output.feature → gherkin/table_row_output.feature} +1 -0
- data/features/modeling/{tag_modeling.feature → gherkin/tag_modeling.feature} +1 -11
- data/features/modeling/{tag_output.feature → gherkin/tag_output.feature} +1 -0
- data/features/modeling/gherkin3/background_modeling.feature +64 -0
- data/features/modeling/gherkin3/background_output.feature +131 -0
- data/features/modeling/gherkin3/directory_modeling.feature +110 -0
- data/features/modeling/gherkin3/directory_output.feature +14 -0
- data/features/modeling/gherkin3/doc_string_modeling.feature +53 -0
- data/features/modeling/gherkin3/doc_string_output.feature +72 -0
- data/features/modeling/gherkin3/example_modeling.feature +100 -0
- data/features/modeling/gherkin3/example_output.feature +207 -0
- data/features/modeling/gherkin3/feature_file_modeling.feature +54 -0
- data/features/modeling/gherkin3/feature_file_output.feature +14 -0
- data/features/modeling/gherkin3/feature_modeling.feature +155 -0
- data/features/modeling/gherkin3/feature_output.feature +249 -0
- data/features/modeling/gherkin3/outline_modeling.feature +89 -0
- data/features/modeling/gherkin3/outline_output.feature +255 -0
- data/features/modeling/gherkin3/row_modeling.feature +68 -0
- data/features/modeling/gherkin3/row_output.feature +28 -0
- data/features/modeling/gherkin3/scenario_modeling.feature +78 -0
- data/features/modeling/gherkin3/scenario_output.feature +148 -0
- data/features/modeling/gherkin3/step_modeling.feature +75 -0
- data/features/modeling/gherkin3/step_output.feature +53 -0
- data/features/modeling/gherkin3/table_modeling.feature +42 -0
- data/features/modeling/gherkin3/table_output.feature +43 -0
- data/features/modeling/gherkin3/table_row_modeling.feature +57 -0
- data/features/modeling/gherkin3/table_row_output.feature +28 -0
- data/features/modeling/gherkin3/tag_modeling.feature +49 -0
- data/features/modeling/gherkin3/tag_output.feature +17 -0
- data/features/step_definitions/background_steps.rb +5 -1
- data/features/step_definitions/doc_string_steps.rb +5 -1
- data/features/step_definitions/feature_steps.rb +5 -1
- data/features/step_definitions/outline_steps.rb +10 -4
- data/features/step_definitions/step_steps.rb +10 -2
- data/features/step_definitions/table_steps.rb +6 -2
- data/features/step_definitions/tag_steps.rb +15 -3
- data/features/step_definitions/test_steps.rb +7 -2
- data/features/support/env.rb +21 -9
- data/gemfiles/gherkin.gemfile +17 -0
- data/gemfiles/gherkin3.gemfile +15 -0
- data/lib/cuke_modeler/adapters/gherkin_2_adapter.rb +146 -0
- data/lib/cuke_modeler/adapters/gherkin_3_adapter.rb +206 -0
- data/lib/cuke_modeler/parsing.rb +61 -20
- data/lib/cuke_modeler/raw.rb +1 -1
- data/lib/cuke_modeler/row.rb +2 -2
- data/lib/cuke_modeler/table.rb +2 -2
- data/lib/cuke_modeler/table_row.rb +1 -1
- data/lib/cuke_modeler/version.rb +1 -1
- data/spec/integration/example_integration_spec.rb +2 -1
- data/spec/integration/feature_integration_spec.rb +7 -4
- data/spec/integration/outline_integration_spec.rb +4 -2
- data/spec/integration/tag_integration_spec.rb +2 -1
- data/spec/spec_helper.rb +6 -0
- data/spec/unit/background_unit_spec.rb +17 -0
- data/spec/unit/doc_string_unit_spec.rb +17 -0
- data/spec/unit/example_unit_spec.rb +18 -1
- data/spec/unit/feature_file_unit_spec.rb +2 -2
- data/spec/unit/feature_unit_spec.rb +16 -0
- data/spec/unit/outline_unit_spec.rb +20 -1
- data/spec/unit/row_unit_spec.rb +18 -0
- data/spec/unit/scenario_unit_spec.rb +17 -0
- data/spec/unit/step_unit_spec.rb +17 -0
- data/spec/unit/table_row_unit_spec.rb +18 -0
- data/spec/unit/table_unit_spec.rb +16 -0
- data/spec/unit/tag_unit_spec.rb +17 -0
- metadata +147 -60
- data/features/step_definitions/spec_steps.rb +0 -18
data/lib/cuke_modeler/raw.rb
CHANGED
data/lib/cuke_modeler/row.rb
CHANGED
@@ -42,12 +42,12 @@ module CukeModeler
|
|
42
42
|
end
|
43
43
|
|
44
44
|
def parse_row(source_text)
|
45
|
-
base_file_string = "Feature: Fake feature to parse\nScenario Outline:\n* fake step\nExamples: fake examples\n"
|
45
|
+
base_file_string = "Feature: Fake feature to parse\nScenario Outline:\n* fake step\nExamples: fake examples\n#{source_text}\n"
|
46
46
|
source_text = base_file_string + source_text
|
47
47
|
|
48
48
|
parsed_file = Parsing::parse_text(source_text)
|
49
49
|
|
50
|
-
parsed_file.first['elements'].first['examples'].first['rows'].
|
50
|
+
parsed_file.first['elements'].first['examples'].first['rows'].last
|
51
51
|
end
|
52
52
|
|
53
53
|
def build_row(parsed_row)
|
data/lib/cuke_modeler/table.rb
CHANGED
@@ -63,11 +63,11 @@ module CukeModeler
|
|
63
63
|
end
|
64
64
|
|
65
65
|
def populate_contents(table)
|
66
|
-
@contents = table.collect { |row| row['cells'] }
|
66
|
+
@contents = table['rows'].collect { |row| row['cells'] }
|
67
67
|
end
|
68
68
|
|
69
69
|
def populate_row_elements(table)
|
70
|
-
table.each do |row|
|
70
|
+
table['rows'].each do |row|
|
71
71
|
@row_elements << build_child_element(TableRow, row)
|
72
72
|
end
|
73
73
|
end
|
data/lib/cuke_modeler/version.rb
CHANGED
@@ -28,7 +28,8 @@ describe 'Example, Integration' do
|
|
28
28
|
' Scenario Outline: Test test',
|
29
29
|
' * a step',
|
30
30
|
' Examples: Test example',
|
31
|
-
' | a param |'
|
31
|
+
' | a param |',
|
32
|
+
' | a value |']
|
32
33
|
source = source.join("\n")
|
33
34
|
|
34
35
|
file_path = "#{@default_file_directory}/example_test_file.feature"
|
@@ -15,7 +15,10 @@ describe 'Feature, Integration' do
|
|
15
15
|
'Feature: Test feature',
|
16
16
|
' Background: Test background',
|
17
17
|
' Scenario: Test scenario',
|
18
|
-
' Scenario Outline: Test outline'
|
18
|
+
' Scenario Outline: Test outline',
|
19
|
+
' Examples: Test Examples',
|
20
|
+
' | param |',
|
21
|
+
' | value |']
|
19
22
|
source = source.join("\n")
|
20
23
|
|
21
24
|
|
@@ -34,7 +37,7 @@ describe 'Feature, Integration' do
|
|
34
37
|
|
35
38
|
it 'can distinguish scenarios from outlines - #scenarios, #outlines' do
|
36
39
|
scenarios = [CukeModeler::Scenario.new('Scenario: 1'), CukeModeler::Scenario.new('Scenario: 2')]
|
37
|
-
outlines = [CukeModeler::Outline.new(
|
40
|
+
outlines = [CukeModeler::Outline.new("Scenario Outline: 1\nExamples:\n|param|\n|value|"), CukeModeler::Outline.new("Scenario Outline: 2\nExamples:\n|param|\n|value|")]
|
38
41
|
|
39
42
|
@feature.tests = scenarios + outlines
|
40
43
|
|
@@ -44,7 +47,7 @@ describe 'Feature, Integration' do
|
|
44
47
|
|
45
48
|
it 'knows how many scenarios it has - #scenario_count' do
|
46
49
|
scenarios = [CukeModeler::Scenario.new('Scenario: 1'), CukeModeler::Scenario.new('Scenario: 2')]
|
47
|
-
outlines = [CukeModeler::Outline.new(
|
50
|
+
outlines = [CukeModeler::Outline.new("Scenario Outline: 1\nExamples:\n|param|\n|value|")]
|
48
51
|
|
49
52
|
@feature.tests = []
|
50
53
|
@feature.scenario_count.should == 0
|
@@ -55,7 +58,7 @@ describe 'Feature, Integration' do
|
|
55
58
|
|
56
59
|
it 'knows how many outlines it has - #outline_count' do
|
57
60
|
scenarios = [CukeModeler::Scenario.new('Scenario: 1')]
|
58
|
-
outlines = [CukeModeler::Outline.new(
|
61
|
+
outlines = [CukeModeler::Outline.new("Scenario Outline: 1\nExamples:\n|param|\n|value|"), CukeModeler::Outline.new("Scenario Outline: 2\nExamples:\n|param|\n|value|")]
|
59
62
|
|
60
63
|
@feature.tests = []
|
61
64
|
@feature.outline_count.should == 0
|
@@ -9,7 +9,8 @@ describe 'Outline, Integration' do
|
|
9
9
|
' Scenario Outline:',
|
10
10
|
' * a step',
|
11
11
|
' Examples:',
|
12
|
-
' | param |'
|
12
|
+
' | param |',
|
13
|
+
' | value |']
|
13
14
|
source = source.join("\n")
|
14
15
|
|
15
16
|
outline = CukeModeler::Outline.new(source)
|
@@ -31,7 +32,8 @@ describe 'Outline, Integration' do
|
|
31
32
|
' Scenario Outline: Test test',
|
32
33
|
' * a step',
|
33
34
|
' Examples: Test example',
|
34
|
-
' | a param |'
|
35
|
+
' | a param |',
|
36
|
+
' | a value |']
|
35
37
|
source = source.join("\n")
|
36
38
|
|
37
39
|
file_path = "#{@default_file_directory}/outline_test_file.feature"
|
data/spec/spec_helper.rb
CHANGED
@@ -14,6 +14,12 @@ require "#{File.dirname(__FILE__)}/unit/sourced_element_unit_specs"
|
|
14
14
|
require "#{File.dirname(__FILE__)}/unit/raw_element_unit_specs"
|
15
15
|
|
16
16
|
RSpec.configure do |config|
|
17
|
+
if Gem.loaded_specs['gherkin'].version.version[/^3/]
|
18
|
+
config.filter_run_excluding :gherkin2 => true
|
19
|
+
else
|
20
|
+
config.filter_run_excluding :gherkin3 => true
|
21
|
+
end
|
22
|
+
|
17
23
|
config.before(:all) do
|
18
24
|
@default_file_directory = "#{File.dirname(__FILE__)}/temp_files"
|
19
25
|
@default_feature_file_name = 'test_feature.feature'
|
@@ -24,6 +24,23 @@ describe 'Background, Unit' do
|
|
24
24
|
@element.name.should == 'test background'
|
25
25
|
end
|
26
26
|
|
27
|
+
it 'stores the original data generated by the parsing adapter', :gherkin3 => true do
|
28
|
+
background = clazz.new('Background: test background')
|
29
|
+
raw_data = background.raw_element
|
30
|
+
|
31
|
+
expect(raw_data.keys).to match_array([:type, :location, :keyword, :name, :steps])
|
32
|
+
expect(raw_data[:type]).to eq(:Background)
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'stores the original data generated by the parsing adapter', :gherkin2 => true do
|
36
|
+
background = clazz.new('Background: test background')
|
37
|
+
raw_data = background.raw_element
|
38
|
+
|
39
|
+
expect(raw_data.keys).to match_array(['keyword', 'name', 'line', 'description', 'type'])
|
40
|
+
expect(raw_data['keyword']).to eq('Background')
|
41
|
+
end
|
42
|
+
|
43
|
+
|
27
44
|
context 'background output edge cases' do
|
28
45
|
|
29
46
|
before(:each) do
|
@@ -22,6 +22,23 @@ describe 'DocString, Unit' do
|
|
22
22
|
@element.contents.should == ["some doc string"]
|
23
23
|
end
|
24
24
|
|
25
|
+
it 'stores the original data generated by the parsing adapter', :gherkin3 => true do
|
26
|
+
doc_string = clazz.new("\"\"\"\nsome doc string\n\"\"\"")
|
27
|
+
raw_data = doc_string.raw_element
|
28
|
+
|
29
|
+
expect(raw_data.keys).to match_array([:type, :location, :content])
|
30
|
+
expect(raw_data[:type]).to eq(:DocString)
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'stores the original data generated by the parsing adapter', :gherkin2 => true do
|
34
|
+
doc_string = clazz.new("\"\"\"\nsome doc string\n\"\"\"")
|
35
|
+
raw_data = doc_string.raw_element
|
36
|
+
|
37
|
+
expect(raw_data.keys).to match_array(['value', 'content_type', 'line'])
|
38
|
+
expect(raw_data['value']).to eq('some doc string')
|
39
|
+
end
|
40
|
+
|
41
|
+
|
25
42
|
before(:each) do
|
26
43
|
@doc_string = clazz.new
|
27
44
|
end
|
@@ -18,7 +18,8 @@ describe 'Example, Unit' do
|
|
18
18
|
|
19
19
|
it 'can be parsed from stand alone text' do
|
20
20
|
source = ['Examples: test example',
|
21
|
-
'|param| '
|
21
|
+
'|param| ',
|
22
|
+
'|value|']
|
22
23
|
|
23
24
|
source = source.join("\n")
|
24
25
|
|
@@ -28,6 +29,22 @@ describe 'Example, Unit' do
|
|
28
29
|
@element.name.should == 'test example'
|
29
30
|
end
|
30
31
|
|
32
|
+
it 'stores the original data generated by the parsing adapter', :gherkin3 => true do
|
33
|
+
example = clazz.new("Examples: test example\n|param|\n|value|")
|
34
|
+
raw_data = example.raw_element
|
35
|
+
|
36
|
+
expect(raw_data.keys).to match_array([:type, :tags, :location, :keyword, :name, :tableHeader, :tableBody])
|
37
|
+
expect(raw_data[:type]).to eq(:Examples)
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'stores the original data generated by the parsing adapter', :gherkin2 => true do
|
41
|
+
example = clazz.new("Examples: test example\n|param|\n|value|")
|
42
|
+
raw_data = example.raw_element
|
43
|
+
|
44
|
+
expect(raw_data.keys).to match_array(['keyword', 'name', 'line', 'description', 'id', 'rows'])
|
45
|
+
expect(raw_data['keyword']).to eq('Examples')
|
46
|
+
end
|
47
|
+
|
31
48
|
|
32
49
|
before(:each) do
|
33
50
|
@example = clazz.new
|
@@ -24,7 +24,7 @@ describe 'FeatureFile, Unit' do
|
|
24
24
|
|
25
25
|
it 'knows the name of the file that it is modeling' do
|
26
26
|
path = "#{@default_file_directory}/#{@default_feature_file_name}"
|
27
|
-
File.open(path, "w") {}
|
27
|
+
File.open(path, "w") { |file| file.puts "Feature:" }
|
28
28
|
|
29
29
|
feature = CukeModeler::FeatureFile.new(path)
|
30
30
|
|
@@ -33,7 +33,7 @@ describe 'FeatureFile, Unit' do
|
|
33
33
|
|
34
34
|
it 'knows the path of the file that it is modeling' do
|
35
35
|
path = "#{@default_file_directory}/#{@default_feature_file_name}"
|
36
|
-
File.open(path, "w") {}
|
36
|
+
File.open(path, "w") { |file| file.puts "Feature:" }
|
37
37
|
|
38
38
|
directory = CukeModeler::FeatureFile.new(path)
|
39
39
|
|
@@ -28,6 +28,22 @@ describe 'Feature, Unit' do
|
|
28
28
|
@element.name.should == 'test feature'
|
29
29
|
end
|
30
30
|
|
31
|
+
it 'stores the original data generated by the parsing adapter', :gherkin3 => true do
|
32
|
+
feature = clazz.new('Feature: test feature')
|
33
|
+
raw_data = feature.raw_element
|
34
|
+
|
35
|
+
expect(raw_data.keys).to match_array([:type, :tags, :location, :language, :keyword, :name, :scenarioDefinitions, :comments])
|
36
|
+
expect(raw_data[:type]).to eq(:Feature)
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'stores the original data generated by the parsing adapter', :gherkin2 => true do
|
40
|
+
feature = clazz.new('Feature: test feature')
|
41
|
+
raw_data = feature.raw_element
|
42
|
+
|
43
|
+
expect(raw_data.keys).to match_array(['keyword', 'name', 'line', 'description', 'id', 'uri'])
|
44
|
+
expect(raw_data['keyword']).to eq('Feature')
|
45
|
+
end
|
46
|
+
|
31
47
|
it 'will complain about unknown element types' do
|
32
48
|
parsed_element = {'description' => '',
|
33
49
|
'elements' => [{'keyword' => 'Scenario', 'description' => ''},
|
@@ -18,7 +18,10 @@ describe 'Outline, Unit' do
|
|
18
18
|
|
19
19
|
|
20
20
|
it 'can be parsed from stand alone text' do
|
21
|
-
source =
|
21
|
+
source = "Scenario Outline: test outline
|
22
|
+
Examples:
|
23
|
+
|param|
|
24
|
+
|value|"
|
22
25
|
|
23
26
|
expect { @element = clazz.new(source) }.to_not raise_error
|
24
27
|
|
@@ -26,6 +29,22 @@ describe 'Outline, Unit' do
|
|
26
29
|
@element.name.should == 'test outline'
|
27
30
|
end
|
28
31
|
|
32
|
+
it 'stores the original data generated by the parsing adapter', :gherkin3 => true do
|
33
|
+
outline = clazz.new("Scenario Outline: test outline\nExamples:\n|param|\n|value|")
|
34
|
+
raw_data = outline.raw_element
|
35
|
+
|
36
|
+
expect(raw_data.keys).to match_array([:type, :tags, :location, :keyword, :name, :steps, :examples])
|
37
|
+
expect(raw_data[:type]).to eq(:ScenarioOutline)
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'stores the original data generated by the parsing adapter', :gherkin2 => true do
|
41
|
+
outline = clazz.new("Scenario Outline: test outline\nExamples:\n|param|\n|value|")
|
42
|
+
raw_data = outline.raw_element
|
43
|
+
|
44
|
+
expect(raw_data.keys).to match_array(['keyword', 'name', 'line', 'description', 'id', 'type'])
|
45
|
+
expect(raw_data['keyword']).to eq('Scenario Outline')
|
46
|
+
end
|
47
|
+
|
29
48
|
|
30
49
|
before(:each) do
|
31
50
|
@outline = clazz.new
|
data/spec/unit/row_unit_spec.rb
CHANGED
@@ -21,6 +21,24 @@ describe 'Row, Unit' do
|
|
21
21
|
@element.cells.should == ['a', 'row']
|
22
22
|
end
|
23
23
|
|
24
|
+
it 'stores the original data generated by the parsing adapter', :gherkin3 => true do
|
25
|
+
example_row = clazz.new("| a | row |")
|
26
|
+
raw_data = example_row.raw_element
|
27
|
+
|
28
|
+
expect(raw_data.keys).to match_array([:type, :location, :cells])
|
29
|
+
expect(raw_data[:type]).to eq('TableRow') # Open bug in the gherkin gem. Should be a symbol like the others.
|
30
|
+
# expect(raw_data[:type]).to eq(:TableRow)
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'stores the original data generated by the parsing adapter', :gherkin2 => true do
|
34
|
+
example_row = clazz.new("| a | row |")
|
35
|
+
raw_data = example_row.raw_element
|
36
|
+
|
37
|
+
expect(raw_data.keys).to match_array(['cells', 'line', 'id'])
|
38
|
+
expect(raw_data['cells']).to eq(['a', 'row'])
|
39
|
+
end
|
40
|
+
|
41
|
+
|
24
42
|
before(:each) do
|
25
43
|
@row = clazz.new
|
26
44
|
end
|
@@ -25,6 +25,23 @@ describe 'Scenario, Unit' do
|
|
25
25
|
@element.name.should == 'test scenario'
|
26
26
|
end
|
27
27
|
|
28
|
+
it 'stores the original data generated by the parsing adapter', :gherkin3 => true do
|
29
|
+
scenario = clazz.new("Scenario: test scenario")
|
30
|
+
raw_data = scenario.raw_element
|
31
|
+
|
32
|
+
expect(raw_data.keys).to match_array([:type, :tags, :location, :keyword, :name, :steps])
|
33
|
+
expect(raw_data[:type]).to eq(:Scenario)
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'stores the original data generated by the parsing adapter', :gherkin2 => true do
|
37
|
+
scenario = clazz.new("Scenario: test scenario")
|
38
|
+
raw_data = scenario.raw_element
|
39
|
+
|
40
|
+
expect(raw_data.keys).to match_array(['keyword', 'name', 'line', 'description', 'id', 'type'])
|
41
|
+
expect(raw_data['keyword']).to eq('Scenario')
|
42
|
+
end
|
43
|
+
|
44
|
+
|
28
45
|
before(:each) do
|
29
46
|
@scenario = clazz.new
|
30
47
|
end
|
data/spec/unit/step_unit_spec.rb
CHANGED
@@ -187,6 +187,23 @@ describe 'Step, Unit' do
|
|
187
187
|
@element.base.should == 'test step'
|
188
188
|
end
|
189
189
|
|
190
|
+
it 'stores the original data generated by the parsing adapter', :gherkin3 => true do
|
191
|
+
step = clazz.new("* test step")
|
192
|
+
raw_data = step.raw_element
|
193
|
+
|
194
|
+
expect(raw_data.keys).to match_array([:type, :location, :keyword, :text])
|
195
|
+
expect(raw_data[:type]).to eq(:Step)
|
196
|
+
end
|
197
|
+
|
198
|
+
it 'stores the original data generated by the parsing adapter', :gherkin2 => true do
|
199
|
+
step = clazz.new("* test step")
|
200
|
+
raw_data = step.raw_element
|
201
|
+
|
202
|
+
expect(raw_data.keys).to match_array(['keyword', 'name', 'line'])
|
203
|
+
expect(raw_data['keyword']).to eq('* ')
|
204
|
+
end
|
205
|
+
|
206
|
+
|
190
207
|
context '#step_text' do
|
191
208
|
|
192
209
|
before(:each) do
|
@@ -21,6 +21,24 @@ describe 'TableRow, Unit' do
|
|
21
21
|
@element.cells.should == ['a', 'row']
|
22
22
|
end
|
23
23
|
|
24
|
+
it 'stores the original data generated by the parsing adapter', :gherkin3 => true do
|
25
|
+
table_row = clazz.new("| a | row |")
|
26
|
+
raw_data = table_row.raw_element
|
27
|
+
|
28
|
+
expect(raw_data.keys).to match_array([:type, :location, :cells])
|
29
|
+
expect(raw_data[:type]).to eq('TableRow') # Open bug in the gherkin gem. Should be a symbol like the others.
|
30
|
+
# expect(raw_data[:type]).to eq(:TableRow)
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'stores the original data generated by the parsing adapter', :gherkin2 => true do
|
34
|
+
table_row = clazz.new("| a | row |")
|
35
|
+
raw_data = table_row.raw_element
|
36
|
+
|
37
|
+
expect(raw_data.keys).to match_array(['cells', 'line'])
|
38
|
+
expect(raw_data['cells']).to eq(['a', 'row'])
|
39
|
+
end
|
40
|
+
|
41
|
+
|
24
42
|
before(:each) do
|
25
43
|
@row = clazz.new
|
26
44
|
end
|
@@ -22,6 +22,22 @@ describe 'Table, Unit' do
|
|
22
22
|
@element.contents.should == [['a table']]
|
23
23
|
end
|
24
24
|
|
25
|
+
it 'stores the original data generated by the parsing adapter', :gherkin3 => true do
|
26
|
+
table = clazz.new("| a table |")
|
27
|
+
raw_data = table.raw_element
|
28
|
+
|
29
|
+
expect(raw_data.keys).to match_array([:type, :location, :rows])
|
30
|
+
expect(raw_data[:type]).to eq(:DataTable)
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'stores the original data generated by the parsing adapter', :gherkin2 => true do
|
34
|
+
table = clazz.new("| a table |")
|
35
|
+
raw_data = table.raw_element
|
36
|
+
|
37
|
+
expect(raw_data).to match_array([{"cells" => ["a table"], "line" => 4}])
|
38
|
+
end
|
39
|
+
|
40
|
+
|
25
41
|
before(:each) do
|
26
42
|
@table = clazz.new
|
27
43
|
end
|
data/spec/unit/tag_unit_spec.rb
CHANGED
@@ -20,6 +20,23 @@ describe 'Tag, Unit' do
|
|
20
20
|
@element.name.should == '@a_tag'
|
21
21
|
end
|
22
22
|
|
23
|
+
it 'stores the original data generated by the parsing adapter', :gherkin3 => true do
|
24
|
+
tag = clazz.new('@a_tag')
|
25
|
+
raw_data = tag.raw_element
|
26
|
+
|
27
|
+
expect(raw_data.keys).to match_array([:type, :location, :name])
|
28
|
+
expect(raw_data[:type]).to eq('Tag')
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'stores the original data generated by the parsing adapter', :gherkin2 => true do
|
32
|
+
tag = clazz.new('@a_tag')
|
33
|
+
raw_data = tag.raw_element
|
34
|
+
|
35
|
+
expect(raw_data.keys).to match_array(['name', 'line'])
|
36
|
+
expect(raw_data['name']).to eq('@a_tag')
|
37
|
+
end
|
38
|
+
|
39
|
+
|
23
40
|
before(:each) do
|
24
41
|
@element = clazz.new
|
25
42
|
end
|