cuke_modeler 1.4.0 → 3.0.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 (128) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +329 -0
  3. data/LICENSE.txt +1 -1
  4. data/README.md +25 -18
  5. data/cuke_modeler.gemspec +15 -9
  6. data/lib/cuke_modeler/adapters/gherkin_10_adapter.rb +12 -0
  7. data/lib/cuke_modeler/adapters/gherkin_11_adapter.rb +12 -0
  8. data/lib/cuke_modeler/adapters/gherkin_12_adapter.rb +12 -0
  9. data/lib/cuke_modeler/adapters/gherkin_13_adapter.rb +12 -0
  10. data/lib/cuke_modeler/adapters/{gherkin_6_adapter.rb → gherkin_9_adapter.rb} +75 -64
  11. data/lib/cuke_modeler/containing.rb +16 -0
  12. data/lib/cuke_modeler/described.rb +1 -0
  13. data/lib/cuke_modeler/models/background.rb +1 -1
  14. data/lib/cuke_modeler/models/cell.rb +1 -1
  15. data/lib/cuke_modeler/models/comment.rb +1 -1
  16. data/lib/cuke_modeler/models/directory.rb +2 -2
  17. data/lib/cuke_modeler/models/doc_string.rb +1 -1
  18. data/lib/cuke_modeler/models/example.rb +1 -1
  19. data/lib/cuke_modeler/models/feature.rb +1 -1
  20. data/lib/cuke_modeler/models/feature_file.rb +2 -2
  21. data/lib/cuke_modeler/models/outline.rb +1 -1
  22. data/lib/cuke_modeler/models/row.rb +1 -1
  23. data/lib/cuke_modeler/models/scenario.rb +1 -1
  24. data/lib/cuke_modeler/models/step.rb +32 -3
  25. data/lib/cuke_modeler/models/table.rb +1 -1
  26. data/lib/cuke_modeler/models/tag.rb +1 -1
  27. data/lib/cuke_modeler/named.rb +1 -0
  28. data/lib/cuke_modeler/nested.rb +1 -0
  29. data/lib/cuke_modeler/parsed.rb +1 -0
  30. data/lib/cuke_modeler/parsing.rb +88 -92
  31. data/lib/cuke_modeler/sourceable.rb +1 -0
  32. data/lib/cuke_modeler/stepped.rb +1 -0
  33. data/lib/cuke_modeler/taggable.rb +1 -0
  34. data/lib/cuke_modeler/version.rb +1 -1
  35. data/testing/cucumber/features/analysis/step_comparison.feature +25 -0
  36. data/testing/cucumber/features/analysis/test_comparison.feature +1 -1
  37. metadata +55 -142
  38. data/.gitignore +0 -18
  39. data/.simplecov +0 -7
  40. data/.travis.yml +0 -54
  41. data/Gemfile +0 -36
  42. data/History.md +0 -191
  43. data/Rakefile +0 -63
  44. data/appveyor.yml +0 -43
  45. data/lib/cuke_modeler/adapters/gherkin_2_adapter.rb +0 -273
  46. data/lib/cuke_modeler/adapters/gherkin_3_adapter.rb +0 -296
  47. data/lib/cuke_modeler/adapters/gherkin_4_adapter.rb +0 -308
  48. data/testing/cucumber/step_definitions/action_steps.rb +0 -13
  49. data/testing/cucumber/step_definitions/background_steps.rb +0 -1
  50. data/testing/cucumber/step_definitions/directory_steps.rb +0 -6
  51. data/testing/cucumber/step_definitions/doc_string_steps.rb +0 -1
  52. data/testing/cucumber/step_definitions/feature_file_steps.rb +0 -16
  53. data/testing/cucumber/step_definitions/feature_steps.rb +0 -7
  54. data/testing/cucumber/step_definitions/modeling_steps.rb +0 -44
  55. data/testing/cucumber/step_definitions/setup_steps.rb +0 -32
  56. data/testing/cucumber/step_definitions/step_steps.rb +0 -3
  57. data/testing/cucumber/step_definitions/table_steps.rb +0 -1
  58. data/testing/cucumber/step_definitions/tag_steps.rb +0 -3
  59. data/testing/cucumber/step_definitions/verification_steps.rb +0 -173
  60. data/testing/cucumber/support/env.rb +0 -30
  61. data/testing/dialect_helper.rb +0 -48
  62. data/testing/file_helper.rb +0 -47
  63. data/testing/gemfiles/gherkin2.gemfile +0 -32
  64. data/testing/gemfiles/gherkin3.gemfile +0 -26
  65. data/testing/gemfiles/gherkin4.gemfile +0 -27
  66. data/testing/gemfiles/gherkin5.gemfile +0 -26
  67. data/testing/gemfiles/gherkin6.gemfile +0 -10
  68. data/testing/rspec/spec/integration/background_integration_spec.rb +0 -442
  69. data/testing/rspec/spec/integration/cell_integration_spec.rb +0 -335
  70. data/testing/rspec/spec/integration/comment_integration_spec.rb +0 -177
  71. data/testing/rspec/spec/integration/directory_integration_spec.rb +0 -218
  72. data/testing/rspec/spec/integration/doc_string_integration_spec.rb +0 -402
  73. data/testing/rspec/spec/integration/example_integration_spec.rb +0 -741
  74. data/testing/rspec/spec/integration/feature_file_integration_spec.rb +0 -272
  75. data/testing/rspec/spec/integration/feature_integration_spec.rb +0 -650
  76. data/testing/rspec/spec/integration/gherkin_2_adapter_spec.rb +0 -166
  77. data/testing/rspec/spec/integration/gherkin_3_adapter_spec.rb +0 -166
  78. data/testing/rspec/spec/integration/gherkin_4_adapter_spec.rb +0 -165
  79. data/testing/rspec/spec/integration/gherkin_6_adapter_spec.rb +0 -166
  80. data/testing/rspec/spec/integration/model_integration_spec.rb +0 -15
  81. data/testing/rspec/spec/integration/nested_integration_spec.rb +0 -91
  82. data/testing/rspec/spec/integration/outline_integration_spec.rb +0 -624
  83. data/testing/rspec/spec/integration/parsing_integration_spec.rb +0 -117
  84. data/testing/rspec/spec/integration/row_integration_spec.rb +0 -291
  85. data/testing/rspec/spec/integration/scenario_integration_spec.rb +0 -479
  86. data/testing/rspec/spec/integration/shared/models_integration_specs.rb +0 -18
  87. data/testing/rspec/spec/integration/step_integration_spec.rb +0 -475
  88. data/testing/rspec/spec/integration/table_integration_spec.rb +0 -337
  89. data/testing/rspec/spec/integration/tag_integration_spec.rb +0 -259
  90. data/testing/rspec/spec/spec_helper.rb +0 -122
  91. data/testing/rspec/spec/unit/background_unit_spec.rb +0 -83
  92. data/testing/rspec/spec/unit/cell_unit_spec.rb +0 -68
  93. data/testing/rspec/spec/unit/comment_unit_spec.rb +0 -68
  94. data/testing/rspec/spec/unit/described_unit_spec.rb +0 -23
  95. data/testing/rspec/spec/unit/directory_unit_spec.rb +0 -127
  96. data/testing/rspec/spec/unit/doc_string_unit_spec.rb +0 -100
  97. data/testing/rspec/spec/unit/example_unit_spec.rb +0 -133
  98. data/testing/rspec/spec/unit/feature_file_unit_spec.rb +0 -125
  99. data/testing/rspec/spec/unit/feature_unit_spec.rb +0 -157
  100. data/testing/rspec/spec/unit/model_unit_spec.rb +0 -15
  101. data/testing/rspec/spec/unit/named_unit_spec.rb +0 -23
  102. data/testing/rspec/spec/unit/nested_unit_spec.rb +0 -43
  103. data/testing/rspec/spec/unit/outline_unit_spec.rb +0 -117
  104. data/testing/rspec/spec/unit/parsed_unit_spec.rb +0 -27
  105. data/testing/rspec/spec/unit/parsing_unit_spec.rb +0 -54
  106. data/testing/rspec/spec/unit/row_unit_spec.rb +0 -68
  107. data/testing/rspec/spec/unit/scenario_unit_spec.rb +0 -86
  108. data/testing/rspec/spec/unit/shared/bare_bones_models_unit_specs.rb +0 -14
  109. data/testing/rspec/spec/unit/shared/containing_models_unit_specs.rb +0 -25
  110. data/testing/rspec/spec/unit/shared/described_models_unit_specs.rb +0 -38
  111. data/testing/rspec/spec/unit/shared/keyworded_models_unit_specs.rb +0 -58
  112. data/testing/rspec/spec/unit/shared/models_unit_specs.rb +0 -15
  113. data/testing/rspec/spec/unit/shared/named_models_unit_specs.rb +0 -39
  114. data/testing/rspec/spec/unit/shared/nested_models_unit_specs.rb +0 -51
  115. data/testing/rspec/spec/unit/shared/parsed_models_unit_specs.rb +0 -39
  116. data/testing/rspec/spec/unit/shared/prepopulated_models_unit_specs.rb +0 -18
  117. data/testing/rspec/spec/unit/shared/sourced_models_unit_specs.rb +0 -39
  118. data/testing/rspec/spec/unit/shared/stepped_models_unit_specs.rb +0 -46
  119. data/testing/rspec/spec/unit/shared/stringifiable_models_unit_specs.rb +0 -18
  120. data/testing/rspec/spec/unit/shared/tagged_models_unit_specs.rb +0 -72
  121. data/testing/rspec/spec/unit/sourceable_unit_spec.rb +0 -27
  122. data/testing/rspec/spec/unit/step_unit_spec.rb +0 -109
  123. data/testing/rspec/spec/unit/stepped_unit_spec.rb +0 -23
  124. data/testing/rspec/spec/unit/table_unit_spec.rb +0 -77
  125. data/testing/rspec/spec/unit/tag_unit_spec.rb +0 -68
  126. data/testing/rspec/spec/unit/taggable_unit_spec.rb +0 -69
  127. data/testing/test_languages.json +0 -45
  128. data/todo.txt +0 -24
@@ -1,166 +0,0 @@
1
- require "#{File.dirname(__FILE__)}/../spec_helper"
2
-
3
-
4
- describe 'Gherkin2Adapter, Integration', :gherkin2 => true do
5
-
6
- let(:clazz) { CukeModeler::Gherkin2Adapter }
7
- let(:adapter) { clazz.new }
8
- let(:source_text) { "# feature comment
9
- @tag1 @tag2 @tag3
10
- #{FEATURE_KEYWORD}: A feature with everything it could have
11
-
12
- Including a description
13
- and then some.
14
-
15
- # background comment
16
- #{BACKGROUND_KEYWORD}:
17
-
18
- Background
19
- description
20
-
21
- #{STEP_KEYWORD} a step
22
- # table comment
23
- | value1 |
24
- # table row comment
25
- | value2 |
26
- #{STEP_KEYWORD} another step
27
-
28
- # scenario comment
29
- @scenario_tag
30
- #{SCENARIO_KEYWORD}:
31
-
32
- Scenario
33
- description
34
-
35
- #{STEP_KEYWORD} a step
36
- #{STEP_KEYWORD} another step
37
- \"\"\"
38
- some text
39
- \"\"\"
40
-
41
- # outline comment
42
- @outline_tag
43
- #{OUTLINE_KEYWORD}:
44
-
45
- Outline
46
- description
47
-
48
- # step comment
49
- #{STEP_KEYWORD} a step
50
- # table comment
51
- | value2 |
52
- # step comment
53
- #{STEP_KEYWORD} another step
54
- # doc string comment
55
- \"\"\"
56
- some text
57
- \"\"\"
58
-
59
- # example comment
60
- @example_tag
61
- #{EXAMPLE_KEYWORD}:
62
-
63
- Example
64
- description
65
-
66
- # row comment
67
- | param |
68
- | value |
69
- # final comment" }
70
- let(:feature_file_model) { test_file_path = CukeModeler::FileHelper.create_feature_file(:text => source_text, :name => 'adapter_test_file')
71
- CukeModeler::FeatureFile.new(test_file_path) }
72
- let(:feature_model) { feature_file_model.feature }
73
-
74
-
75
- it "does not store parsing data for a feature file's children" do
76
- model = feature_file_model
77
-
78
- expect(model.parsing_data).to eq([])
79
- end
80
-
81
- it "does not store parsing data for a feature's children" do
82
- model = feature_model
83
-
84
- expect(model.parsing_data['comments']).to be_nil
85
- expect(model.parsing_data['tags']).to be_nil
86
- expect(model.parsing_data['elements']).to be_nil
87
- end
88
-
89
- it "does not store parsing data for a background's children" do
90
- model = feature_model.background
91
-
92
- expect(model.parsing_data['comments']).to be_nil
93
- expect(model.parsing_data['steps']).to be_nil
94
- end
95
-
96
- it "does not store parsing data for a scenario's children" do
97
- model = feature_model.scenarios.first
98
-
99
- expect(model.parsing_data['comments']).to be_nil
100
- expect(model.parsing_data['tags']).to be_nil
101
- expect(model.parsing_data['steps']).to be_nil
102
- end
103
-
104
- it "does not store parsing data for an outline's children" do
105
- model = feature_model.outlines.first
106
-
107
- expect(model.parsing_data['comments']).to be_nil
108
- expect(model.parsing_data['tags']).to be_nil
109
- expect(model.parsing_data['steps']).to be_nil
110
- expect(model.parsing_data['examples']).to be_nil
111
- end
112
-
113
- it "does not store parsing data for an example's children" do
114
- model = feature_model.outlines.first.examples.first
115
-
116
- expect(model.parsing_data['comments']).to be_nil
117
- expect(model.parsing_data['tags']).to be_nil
118
- expect(model.parsing_data['rows']).to be_nil
119
- end
120
-
121
- it "does not store parsing data for an example row's children" do
122
- model = feature_model.outlines.first.examples.first.rows.first
123
-
124
- expect(model.parsing_data['comments']).to be_nil
125
- expect(model.parsing_data['cells']).to be_nil
126
- end
127
-
128
- it "does not store parsing data for a step's children, table" do
129
- model = feature_model.outlines.first.steps.first
130
-
131
- expect(model.parsing_data['comments']).to be_nil
132
- expect(model.parsing_data['rows']).to be_nil
133
- end
134
-
135
- it "does not store parsing data for a step's children, doc string" do
136
- model = feature_model.outlines.first.steps.last
137
-
138
- expect(model.parsing_data['comments']).to be_nil
139
- expect(model.parsing_data['doc_string']).to be_nil
140
- end
141
-
142
- it "does not store parsing data for a table's children" do
143
- model = feature_model.outlines.first.steps.first.block
144
-
145
- expect(model.parsing_data).to be_empty
146
- end
147
-
148
- it "does not store parsing data for a table row's children" do
149
- model = feature_model.outlines.first.steps.first.block.rows.first
150
-
151
- expect(model.parsing_data['comments']).to be_nil
152
- expect(model.parsing_data['cells']).to be_nil
153
- end
154
-
155
-
156
- describe 'stuff that is in no way part of the public API and entirely subject to change' do
157
-
158
- it 'provides a useful explosion message if it encounters an entirely new type of test' do
159
- partial_feature_ast = {"elements" => [{"type" => "some_unknown_type"}]}
160
-
161
- expect { adapter.adapt_feature!(partial_feature_ast, []) }.to raise_error(ArgumentError, /Unknown.*some_unknown_type/)
162
- end
163
-
164
- end
165
-
166
- end
@@ -1,166 +0,0 @@
1
- require "#{File.dirname(__FILE__)}/../spec_helper"
2
-
3
-
4
- describe 'Gherkin3Adapter, Integration', :gherkin3 => true do
5
-
6
- let(:clazz) { CukeModeler::Gherkin3Adapter }
7
- let(:adapter) { clazz.new }
8
- let(:source_text) { "# feature comment
9
- @tag1 @tag2 @tag3
10
- #{FEATURE_KEYWORD}: A feature with everything it could have
11
-
12
- Including a description
13
- and then some.
14
-
15
- # background comment
16
- #{BACKGROUND_KEYWORD}:
17
-
18
- Background
19
- description
20
-
21
- #{STEP_KEYWORD} a step
22
- # table comment
23
- | value1 |
24
- # table row comment
25
- | value2 |
26
- #{STEP_KEYWORD} another step
27
-
28
- # scenario comment
29
- @scenario_tag
30
- #{SCENARIO_KEYWORD}:
31
-
32
- Scenario
33
- description
34
-
35
- #{STEP_KEYWORD} a step
36
- #{STEP_KEYWORD} another step
37
- \"\"\"
38
- some text
39
- \"\"\"
40
-
41
- # outline comment
42
- @outline_tag
43
- #{OUTLINE_KEYWORD}:
44
-
45
- Outline
46
- description
47
-
48
- # step comment
49
- #{STEP_KEYWORD} a step
50
- # table comment
51
- | value2 |
52
- # step comment
53
- #{STEP_KEYWORD} another step
54
- # doc string comment
55
- \"\"\"
56
- some text
57
- \"\"\"
58
-
59
- # example comment
60
- @example_tag
61
- #{EXAMPLE_KEYWORD}:
62
-
63
- Example
64
- description
65
-
66
- # row comment
67
- | param |
68
- | value |
69
- # final comment" }
70
- let(:feature_file_model) { test_file_path = CukeModeler::FileHelper.create_feature_file(:text => source_text, :name => 'adapter_test_file')
71
- CukeModeler::FeatureFile.new(test_file_path) }
72
- let(:feature_model) { feature_file_model.feature }
73
-
74
-
75
- it "does not store parsing data for a feature file's children" do
76
- model = feature_file_model
77
-
78
- expect(model.parsing_data).to be_nil
79
- end
80
-
81
- it "does not store parsing data for a feature's children" do
82
- model = feature_model
83
-
84
- expect(model.parsing_data[:comments]).to be_nil
85
- expect(model.parsing_data[:tags]).to be_nil
86
- expect(model.parsing_data[:scenarioDefinitions]).to be_nil
87
- expect(model.parsing_data[:background]).to be_nil
88
- end
89
-
90
- it "does not store parsing data for a background's children" do
91
- model = feature_model.background
92
-
93
- expect(model.parsing_data[:steps]).to be_nil
94
- end
95
-
96
- it "does not store parsing data for a scenario's children" do
97
- model = feature_model.scenarios.first
98
-
99
- expect(model.parsing_data[:tags]).to be_nil
100
- expect(model.parsing_data[:steps]).to be_nil
101
- end
102
-
103
- it "does not store parsing data for an outline's children" do
104
- model = feature_model.outlines.first
105
-
106
- expect(model.parsing_data[:tags]).to be_nil
107
- expect(model.parsing_data[:steps]).to be_nil
108
- expect(model.parsing_data[:examples]).to be_nil
109
- end
110
-
111
- it "does not store parsing data for an example's children" do
112
- model = feature_model.outlines.first.examples.first
113
-
114
- expect(model.parsing_data[:tags]).to be_nil
115
- expect(model.parsing_data[:tableHeader]).to be_nil
116
- expect(model.parsing_data[:tableBody]).to be_nil
117
- end
118
-
119
- it "does not store parsing data for an example row's children" do
120
- model = feature_model.outlines.first.examples.first.rows.first
121
-
122
- expect(model.parsing_data[:cells]).to be_nil
123
- end
124
-
125
- it "does not store parsing data for a step's children, table" do
126
- model = feature_model.outlines.first.steps.first
127
-
128
- expect(model.parsing_data[:argument]).to be_nil
129
- end
130
-
131
- it "does not store parsing data for a step's children, doc string" do
132
- model = feature_model.outlines.first.steps.last
133
-
134
- expect(model.parsing_data[:argument]).to be_nil
135
- end
136
-
137
- it "does not store parsing data for a table's children" do
138
- model = feature_model.outlines.first.steps.first.block
139
-
140
- expect(model.parsing_data[:rows]).to be_nil
141
- end
142
-
143
- it "does not store parsing data for a table row's children" do
144
- model = feature_model.outlines.first.steps.first.block.rows.first
145
-
146
- expect(model.parsing_data[:cells]).to be_nil
147
- end
148
-
149
-
150
- describe 'stuff that is in no way part of the public API and entirely subject to change' do
151
-
152
- it 'provides a useful explosion message if it encounters an entirely new type of test' do
153
- partial_feature_ast = {:type => :Feature, :location => {:line => 1, :column => 1}, :scenarioDefinitions => [{:type => :some_unknown_type}]}
154
-
155
- expect { adapter.adapt_feature!(partial_feature_ast) }.to raise_error(ArgumentError, /Unknown.*some_unknown_type/)
156
- end
157
-
158
- it 'provides a useful explosion message if it encounters an entirely new type of step block' do
159
- partial_feature_ast = {:type => :Feature, :location => {:line => 1, :column => 1}, :scenarioDefinitions => [{:type => :Scenario, :tags => [], :location => {:line => 1, :column => 1}, :steps => [{:type => :Step, :location => {:line => 1, :column => 1}, :argument => {:type => :some_unknown_type, :location => {:line => 1, :column => 1}, :content => ""}}]}]}
160
-
161
- expect { adapter.adapt_feature!(partial_feature_ast) }.to raise_error(ArgumentError, /Unknown.*some_unknown_type/)
162
- end
163
-
164
- end
165
-
166
- end
@@ -1,165 +0,0 @@
1
- require "#{File.dirname(__FILE__)}/../spec_helper"
2
-
3
-
4
- describe 'Gherkin4Adapter, Integration', :gherkin4_5 => true do
5
-
6
- let(:clazz) { CukeModeler::Gherkin4Adapter }
7
- let(:adapter) { clazz.new }
8
- let(:source_text) { "# feature comment
9
- @tag1 @tag2 @tag3
10
- #{FEATURE_KEYWORD}: A feature with everything it could have
11
-
12
- Including a description
13
- and then some.
14
-
15
- # background comment
16
- #{BACKGROUND_KEYWORD}:
17
-
18
- Background
19
- description
20
-
21
- #{STEP_KEYWORD} a step
22
- # table comment
23
- | value1 |
24
- # table row comment
25
- | value2 |
26
- #{STEP_KEYWORD} another step
27
-
28
- # scenario comment
29
- @scenario_tag
30
- #{SCENARIO_KEYWORD}:
31
-
32
- Scenario
33
- description
34
-
35
- #{STEP_KEYWORD} a step
36
- #{STEP_KEYWORD} another step
37
- \"\"\"
38
- some text
39
- \"\"\"
40
-
41
- # outline comment
42
- @outline_tag
43
- #{OUTLINE_KEYWORD}:
44
-
45
- Outline
46
- description
47
-
48
- # step comment
49
- #{STEP_KEYWORD} a step
50
- # table comment
51
- | value2 |
52
- # step comment
53
- #{STEP_KEYWORD} another step
54
- # doc string comment
55
- \"\"\"
56
- some text
57
- \"\"\"
58
-
59
- # example comment
60
- @example_tag
61
- #{EXAMPLE_KEYWORD}:
62
-
63
- Example
64
- description
65
-
66
- # row comment
67
- | param |
68
- | value |
69
- # final comment" }
70
- let(:feature_file_model) { test_file_path = CukeModeler::FileHelper.create_feature_file(:text => source_text, :name => 'adapter_test_file')
71
- CukeModeler::FeatureFile.new(test_file_path) }
72
- let(:feature_model) { feature_file_model.feature }
73
-
74
-
75
- it "does not store parsing data for a feature file's children" do
76
- model = feature_file_model
77
-
78
- expect(model.parsing_data[:comments]).to be_nil
79
- expect(model.parsing_data[:feature]).to be_nil
80
- end
81
-
82
- it "does not store parsing data for a feature's children" do
83
- model = feature_model
84
-
85
- expect(model.parsing_data[:tags]).to be_nil
86
- expect(model.parsing_data[:children]).to be_nil
87
- end
88
-
89
- it "does not store parsing data for a background's children" do
90
- model = feature_model.background
91
-
92
- expect(model.parsing_data[:steps]).to be_nil
93
- end
94
-
95
- it "does not store parsing data for a scenario's children" do
96
- model = feature_model.scenarios.first
97
-
98
- expect(model.parsing_data[:tags]).to be_nil
99
- expect(model.parsing_data[:steps]).to be_nil
100
- end
101
-
102
- it "does not store parsing data for an outline's children" do
103
- model = feature_model.outlines.first
104
-
105
- expect(model.parsing_data[:tags]).to be_nil
106
- expect(model.parsing_data[:steps]).to be_nil
107
- expect(model.parsing_data[:examples]).to be_nil
108
- end
109
-
110
- it "does not store parsing data for an example's children" do
111
- model = feature_model.outlines.first.examples.first
112
-
113
- expect(model.parsing_data[:tags]).to be_nil
114
- expect(model.parsing_data[:tableHeader]).to be_nil
115
- expect(model.parsing_data[:tableBody]).to be_nil
116
- end
117
-
118
- it "does not store parsing data for an example row's children" do
119
- model = feature_model.outlines.first.examples.first.rows.first
120
-
121
- expect(model.parsing_data[:cells]).to be_nil
122
- end
123
-
124
- it "does not store parsing data for a step's children, table" do
125
- model = feature_model.outlines.first.steps.first
126
-
127
- expect(model.parsing_data[:argument]).to be_nil
128
- end
129
-
130
- it "does not store parsing data for a step's children, doc string" do
131
- model = feature_model.outlines.first.steps.last
132
-
133
- expect(model.parsing_data[:argument]).to be_nil
134
- end
135
-
136
- it "does not store parsing data for a table's children" do
137
- model = feature_model.outlines.first.steps.first.block
138
-
139
- expect(model.parsing_data[:rows]).to be_nil
140
- end
141
-
142
- it "does not store parsing data for a table row's children" do
143
- model = feature_model.outlines.first.steps.first.block.rows.first
144
-
145
- expect(model.parsing_data[:cells]).to be_nil
146
- end
147
-
148
-
149
- describe 'stuff that is in no way part of the public API and entirely subject to change' do
150
-
151
- it 'provides a useful explosion message if it encounters an entirely new type of test' do
152
- partial_feature_ast = {:type => :Feature, :location => {:line => 1, :column => 1}, :children => [{:type => :some_unknown_type}]}
153
-
154
- expect { adapter.adapt_feature!(partial_feature_ast) }.to raise_error(ArgumentError, /Unknown.*some_unknown_type/)
155
- end
156
-
157
- it 'provides a useful explosion message if it encounters an entirely new type of step block' do
158
- partial_feature_ast = {:type => :Feature, :location => {:line => 1, :column => 1}, :children => [{:type => :Scenario, :tags => [], :location => {:line => 1, :column => 1}, :steps => [{:type => :Step, :location => {:line => 1, :column => 1}, :argument => {:type => :some_unknown_type, :location => {:line => 1, :column => 1}, :content => ""}}]}]}
159
-
160
- expect { adapter.adapt_feature!(partial_feature_ast) }.to raise_error(ArgumentError, /Unknown.*some_unknown_type/)
161
- end
162
-
163
- end
164
-
165
- end