cuke_modeler 2.1.0 → 3.4.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 (146) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +53 -1
  3. data/README.md +14 -16
  4. data/cuke_modeler.gemspec +33 -21
  5. data/lib/cuke_modeler.rb +2 -1
  6. data/lib/cuke_modeler/adapters/gherkin_10_adapter.rb +13 -0
  7. data/lib/cuke_modeler/adapters/gherkin_11_adapter.rb +13 -0
  8. data/lib/cuke_modeler/adapters/gherkin_12_adapter.rb +13 -0
  9. data/lib/cuke_modeler/adapters/gherkin_13_adapter.rb +13 -0
  10. data/lib/cuke_modeler/adapters/gherkin_14_adapter.rb +13 -0
  11. data/lib/cuke_modeler/adapters/gherkin_15_adapter.rb +13 -0
  12. data/lib/cuke_modeler/adapters/gherkin_9_adapter.rb +356 -4
  13. data/lib/cuke_modeler/containing.rb +41 -89
  14. data/lib/cuke_modeler/described.rb +40 -1
  15. data/lib/cuke_modeler/models/background.rb +12 -12
  16. data/lib/cuke_modeler/models/cell.rb +14 -8
  17. data/lib/cuke_modeler/models/comment.rb +6 -6
  18. data/lib/cuke_modeler/models/directory.rb +14 -18
  19. data/lib/cuke_modeler/models/doc_string.rb +11 -8
  20. data/lib/cuke_modeler/models/example.rb +64 -46
  21. data/lib/cuke_modeler/models/feature.rb +38 -20
  22. data/lib/cuke_modeler/models/feature_file.rb +6 -8
  23. data/lib/cuke_modeler/models/model.rb +2 -1
  24. data/lib/cuke_modeler/models/outline.rb +20 -15
  25. data/lib/cuke_modeler/models/row.rb +11 -8
  26. data/lib/cuke_modeler/models/rule.rb +101 -0
  27. data/lib/cuke_modeler/models/scenario.rb +18 -13
  28. data/lib/cuke_modeler/models/step.rb +41 -19
  29. data/lib/cuke_modeler/models/table.rb +10 -7
  30. data/lib/cuke_modeler/models/tag.rb +10 -6
  31. data/lib/cuke_modeler/named.rb +5 -1
  32. data/lib/cuke_modeler/nested.rb +22 -18
  33. data/lib/cuke_modeler/parsed.rb +8 -0
  34. data/lib/cuke_modeler/parsing.rb +55 -74
  35. data/lib/cuke_modeler/sourceable.rb +8 -0
  36. data/lib/cuke_modeler/stepped.rb +8 -0
  37. data/lib/cuke_modeler/taggable.rb +9 -1
  38. data/lib/cuke_modeler/version.rb +1 -1
  39. data/testing/cucumber/features/modeling/feature_modeling.feature +28 -7
  40. data/testing/cucumber/features/modeling/feature_output.feature +45 -23
  41. data/testing/cucumber/features/modeling/rule_modeling.feature +108 -0
  42. data/testing/cucumber/features/modeling/rule_output.feature +111 -0
  43. metadata +68 -161
  44. data/.gitignore +0 -18
  45. data/.simplecov +0 -7
  46. data/.travis.yml +0 -81
  47. data/Gemfile +0 -44
  48. data/Rakefile +0 -73
  49. data/appveyor.yml +0 -88
  50. data/lib/cuke_modeler/adapters/gherkin_2_adapter.rb +0 -274
  51. data/lib/cuke_modeler/adapters/gherkin_3_adapter.rb +0 -297
  52. data/lib/cuke_modeler/adapters/gherkin_4_adapter.rb +0 -309
  53. data/lib/cuke_modeler/adapters/gherkin_5_adapter.rb +0 -12
  54. data/lib/cuke_modeler/adapters/gherkin_6_adapter.rb +0 -310
  55. data/lib/cuke_modeler/adapters/gherkin_7_adapter.rb +0 -307
  56. data/lib/cuke_modeler/adapters/gherkin_8_adapter.rb +0 -12
  57. data/testing/cucumber/step_definitions/action_steps.rb +0 -13
  58. data/testing/cucumber/step_definitions/background_steps.rb +0 -1
  59. data/testing/cucumber/step_definitions/directory_steps.rb +0 -6
  60. data/testing/cucumber/step_definitions/doc_string_steps.rb +0 -1
  61. data/testing/cucumber/step_definitions/feature_file_steps.rb +0 -16
  62. data/testing/cucumber/step_definitions/feature_steps.rb +0 -7
  63. data/testing/cucumber/step_definitions/modeling_steps.rb +0 -49
  64. data/testing/cucumber/step_definitions/setup_steps.rb +0 -32
  65. data/testing/cucumber/step_definitions/step_steps.rb +0 -3
  66. data/testing/cucumber/step_definitions/table_steps.rb +0 -1
  67. data/testing/cucumber/step_definitions/tag_steps.rb +0 -3
  68. data/testing/cucumber/step_definitions/verification_steps.rb +0 -181
  69. data/testing/cucumber/support/env.rb +0 -30
  70. data/testing/dialect_helper.rb +0 -48
  71. data/testing/file_helper.rb +0 -47
  72. data/testing/gemfiles/gherkin2.gemfile +0 -33
  73. data/testing/gemfiles/gherkin3.gemfile +0 -26
  74. data/testing/gemfiles/gherkin4.gemfile +0 -27
  75. data/testing/gemfiles/gherkin5.gemfile +0 -27
  76. data/testing/gemfiles/gherkin6.gemfile +0 -10
  77. data/testing/gemfiles/gherkin7.gemfile +0 -9
  78. data/testing/gemfiles/gherkin8.gemfile +0 -9
  79. data/testing/gemfiles/gherkin9.gemfile +0 -9
  80. data/testing/helper_methods.rb +0 -23
  81. data/testing/rspec/spec/integration/adapters/gherkin_2_adapter_spec.rb +0 -166
  82. data/testing/rspec/spec/integration/adapters/gherkin_3_adapter_spec.rb +0 -166
  83. data/testing/rspec/spec/integration/adapters/gherkin_4_adapter_spec.rb +0 -165
  84. data/testing/rspec/spec/integration/adapters/gherkin_5_adapter_spec.rb +0 -165
  85. data/testing/rspec/spec/integration/adapters/gherkin_6_adapter_spec.rb +0 -159
  86. data/testing/rspec/spec/integration/adapters/gherkin_7_adapter_spec.rb +0 -162
  87. data/testing/rspec/spec/integration/adapters/gherkin_8_adapter_spec.rb +0 -162
  88. data/testing/rspec/spec/integration/adapters/gherkin_9_adapter_spec.rb +0 -162
  89. data/testing/rspec/spec/integration/models/background_integration_spec.rb +0 -438
  90. data/testing/rspec/spec/integration/models/cell_integration_spec.rb +0 -338
  91. data/testing/rspec/spec/integration/models/comment_integration_spec.rb +0 -180
  92. data/testing/rspec/spec/integration/models/directory_integration_spec.rb +0 -218
  93. data/testing/rspec/spec/integration/models/doc_string_integration_spec.rb +0 -398
  94. data/testing/rspec/spec/integration/models/example_integration_spec.rb +0 -753
  95. data/testing/rspec/spec/integration/models/feature_file_integration_spec.rb +0 -276
  96. data/testing/rspec/spec/integration/models/feature_integration_spec.rb +0 -655
  97. data/testing/rspec/spec/integration/models/model_integration_spec.rb +0 -15
  98. data/testing/rspec/spec/integration/models/outline_integration_spec.rb +0 -619
  99. data/testing/rspec/spec/integration/models/row_integration_spec.rb +0 -303
  100. data/testing/rspec/spec/integration/models/scenario_integration_spec.rb +0 -475
  101. data/testing/rspec/spec/integration/models/step_integration_spec.rb +0 -573
  102. data/testing/rspec/spec/integration/models/table_integration_spec.rb +0 -333
  103. data/testing/rspec/spec/integration/models/tag_integration_spec.rb +0 -271
  104. data/testing/rspec/spec/integration/nested_integration_spec.rb +0 -91
  105. data/testing/rspec/spec/integration/parsing_integration_spec.rb +0 -143
  106. data/testing/rspec/spec/integration/shared/models_integration_specs.rb +0 -18
  107. data/testing/rspec/spec/spec_helper.rb +0 -129
  108. data/testing/rspec/spec/unit/cuke_modeler_unit_spec.rb +0 -25
  109. data/testing/rspec/spec/unit/described_unit_spec.rb +0 -23
  110. data/testing/rspec/spec/unit/models/background_unit_spec.rb +0 -83
  111. data/testing/rspec/spec/unit/models/cell_unit_spec.rb +0 -68
  112. data/testing/rspec/spec/unit/models/comment_unit_spec.rb +0 -68
  113. data/testing/rspec/spec/unit/models/directory_unit_spec.rb +0 -127
  114. data/testing/rspec/spec/unit/models/doc_string_unit_spec.rb +0 -100
  115. data/testing/rspec/spec/unit/models/example_unit_spec.rb +0 -133
  116. data/testing/rspec/spec/unit/models/feature_file_unit_spec.rb +0 -125
  117. data/testing/rspec/spec/unit/models/feature_unit_spec.rb +0 -157
  118. data/testing/rspec/spec/unit/models/model_unit_spec.rb +0 -15
  119. data/testing/rspec/spec/unit/models/outline_unit_spec.rb +0 -117
  120. data/testing/rspec/spec/unit/models/row_unit_spec.rb +0 -68
  121. data/testing/rspec/spec/unit/models/scenario_unit_spec.rb +0 -86
  122. data/testing/rspec/spec/unit/models/step_unit_spec.rb +0 -109
  123. data/testing/rspec/spec/unit/models/table_unit_spec.rb +0 -77
  124. data/testing/rspec/spec/unit/models/tag_unit_spec.rb +0 -68
  125. data/testing/rspec/spec/unit/named_unit_spec.rb +0 -23
  126. data/testing/rspec/spec/unit/nested_unit_spec.rb +0 -43
  127. data/testing/rspec/spec/unit/parsed_unit_spec.rb +0 -27
  128. data/testing/rspec/spec/unit/parsing_unit_spec.rb +0 -54
  129. data/testing/rspec/spec/unit/shared/bare_bones_models_unit_specs.rb +0 -14
  130. data/testing/rspec/spec/unit/shared/containing_models_unit_specs.rb +0 -127
  131. data/testing/rspec/spec/unit/shared/described_models_unit_specs.rb +0 -38
  132. data/testing/rspec/spec/unit/shared/keyworded_models_unit_specs.rb +0 -58
  133. data/testing/rspec/spec/unit/shared/models_unit_specs.rb +0 -15
  134. data/testing/rspec/spec/unit/shared/named_models_unit_specs.rb +0 -39
  135. data/testing/rspec/spec/unit/shared/nested_models_unit_specs.rb +0 -51
  136. data/testing/rspec/spec/unit/shared/parsed_models_unit_specs.rb +0 -39
  137. data/testing/rspec/spec/unit/shared/prepopulated_models_unit_specs.rb +0 -18
  138. data/testing/rspec/spec/unit/shared/sourced_models_unit_specs.rb +0 -39
  139. data/testing/rspec/spec/unit/shared/stepped_models_unit_specs.rb +0 -46
  140. data/testing/rspec/spec/unit/shared/stringifiable_models_unit_specs.rb +0 -18
  141. data/testing/rspec/spec/unit/shared/tagged_models_unit_specs.rb +0 -72
  142. data/testing/rspec/spec/unit/sourceable_unit_spec.rb +0 -27
  143. data/testing/rspec/spec/unit/stepped_unit_spec.rb +0 -23
  144. data/testing/rspec/spec/unit/taggable_unit_spec.rb +0 -69
  145. data/testing/test_languages.json +0 -45
  146. data/todo.txt +0 -25
@@ -1,162 +0,0 @@
1
- require "#{File.dirname(__FILE__)}/../../spec_helper"
2
-
3
-
4
- describe 'Gherkin7Adapter, Integration', :if => gherkin?(7) do
5
-
6
- let(:clazz) { CukeModeler::Gherkin7Adapter }
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) do
71
- test_file_path = CukeModeler::FileHelper.create_feature_file(:text => source_text, :name => 'adapter_test_file')
72
-
73
- CukeModeler::FeatureFile.new(test_file_path)
74
- end
75
- let(:feature_model) { feature_file_model.feature }
76
-
77
-
78
- it "does not store parsing data for a feature file's children" do
79
- model = feature_file_model
80
-
81
- expect(model.parsing_data[:comments]).to be_nil
82
- expect(model.parsing_data[:feature]).to be_nil
83
- end
84
-
85
- it "does not store parsing data for a feature's children" do
86
- model = feature_model
87
-
88
- expect(model.parsing_data[:tags]).to be_nil
89
- expect(model.parsing_data[:children]).to be_nil
90
- end
91
-
92
- it "does not store parsing data for a background's children" do
93
- model = feature_model.background
94
-
95
- expect(model.parsing_data[:background][:steps]).to be_nil
96
- end
97
-
98
- it "does not store parsing data for a scenario's children" do
99
- model = feature_model.scenarios.first
100
-
101
- expect(model.parsing_data[:scenario][:tags]).to be_nil
102
- expect(model.parsing_data[:scenario][:steps]).to be_nil
103
- end
104
-
105
- it "does not store parsing data for an outline's children" do
106
- model = feature_model.outlines.first
107
-
108
- expect(model.parsing_data[:scenario][:tags]).to be_nil
109
- expect(model.parsing_data[:scenario][:steps]).to be_nil
110
- expect(model.parsing_data[:scenario][: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[:tags]).to be_nil
117
- expect(model.parsing_data[:table_header]).to be_nil
118
- expect(model.parsing_data[:table_body]).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[:cells]).to be_nil
125
- end
126
-
127
- it "does not store parsing data for a step's children, table" do
128
- model = feature_model.outlines.first.steps.first
129
-
130
- expect(model.parsing_data[:data_table]).to be_nil
131
- end
132
-
133
- it "does not store parsing data for a step's children, doc string" do
134
- model = feature_model.outlines.first.steps.last
135
-
136
- expect(model.parsing_data[:doc_string]).to be_nil
137
- end
138
-
139
- it "does not store parsing data for a table's children" do
140
- model = feature_model.outlines.first.steps.first.block
141
-
142
- expect(model.parsing_data[:rows]).to be_nil
143
- end
144
-
145
- it "does not store parsing data for a table row's children" do
146
- model = feature_model.outlines.first.steps.first.block.rows.first
147
-
148
- expect(model.parsing_data[:cells]).to be_nil
149
- end
150
-
151
-
152
- describe 'stuff that is in no way part of the public API and entirely subject to change' do
153
-
154
- it 'provides a useful explosion message if it encounters an entirely new type of test' do
155
- partial_feature_ast = { :type => :Feature, :location => { :line => 1, :column => 1 }, :children => [{ :some_unknown_type => {} }] }
156
-
157
- expect { adapter.adapt_feature!(partial_feature_ast) }.to raise_error(ArgumentError, /Unknown.*some_unknown_type/)
158
- end
159
-
160
- end
161
-
162
- end
@@ -1,162 +0,0 @@
1
- require "#{File.dirname(__FILE__)}/../../spec_helper"
2
-
3
-
4
- describe 'Gherkin8Adapter, Integration', :if => gherkin?(8) do
5
-
6
- let(:clazz) { CukeModeler::Gherkin8Adapter }
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) do
71
- test_file_path = CukeModeler::FileHelper.create_feature_file(:text => source_text, :name => 'adapter_test_file')
72
-
73
- CukeModeler::FeatureFile.new(test_file_path)
74
- end
75
- let(:feature_model) { feature_file_model.feature }
76
-
77
-
78
- it "does not store parsing data for a feature file's children" do
79
- model = feature_file_model
80
-
81
- expect(model.parsing_data[:comments]).to be_nil
82
- expect(model.parsing_data[:feature]).to be_nil
83
- end
84
-
85
- it "does not store parsing data for a feature's children" do
86
- model = feature_model
87
-
88
- expect(model.parsing_data[:tags]).to be_nil
89
- expect(model.parsing_data[:children]).to be_nil
90
- end
91
-
92
- it "does not store parsing data for a background's children" do
93
- model = feature_model.background
94
-
95
- expect(model.parsing_data[:background][:steps]).to be_nil
96
- end
97
-
98
- it "does not store parsing data for a scenario's children" do
99
- model = feature_model.scenarios.first
100
-
101
- expect(model.parsing_data[:scenario][:tags]).to be_nil
102
- expect(model.parsing_data[:scenario][:steps]).to be_nil
103
- end
104
-
105
- it "does not store parsing data for an outline's children" do
106
- model = feature_model.outlines.first
107
-
108
- expect(model.parsing_data[:scenario][:tags]).to be_nil
109
- expect(model.parsing_data[:scenario][:steps]).to be_nil
110
- expect(model.parsing_data[:scenario][: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[:tags]).to be_nil
117
- expect(model.parsing_data[:table_header]).to be_nil
118
- expect(model.parsing_data[:table_body]).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[:cells]).to be_nil
125
- end
126
-
127
- it "does not store parsing data for a step's children, table" do
128
- model = feature_model.outlines.first.steps.first
129
-
130
- expect(model.parsing_data[:data_table]).to be_nil
131
- end
132
-
133
- it "does not store parsing data for a step's children, doc string" do
134
- model = feature_model.outlines.first.steps.last
135
-
136
- expect(model.parsing_data[:doc_string]).to be_nil
137
- end
138
-
139
- it "does not store parsing data for a table's children" do
140
- model = feature_model.outlines.first.steps.first.block
141
-
142
- expect(model.parsing_data[:rows]).to be_nil
143
- end
144
-
145
- it "does not store parsing data for a table row's children" do
146
- model = feature_model.outlines.first.steps.first.block.rows.first
147
-
148
- expect(model.parsing_data[:cells]).to be_nil
149
- end
150
-
151
-
152
- describe 'stuff that is in no way part of the public API and entirely subject to change' do
153
-
154
- it 'provides a useful explosion message if it encounters an entirely new type of test' do
155
- partial_feature_ast = { :type => :Feature, :location => { :line => 1, :column => 1 }, :children => [{ :some_unknown_type => {} }] }
156
-
157
- expect { adapter.adapt_feature!(partial_feature_ast) }.to raise_error(ArgumentError, /Unknown.*some_unknown_type/)
158
- end
159
-
160
- end
161
-
162
- end
@@ -1,162 +0,0 @@
1
- require "#{File.dirname(__FILE__)}/../../spec_helper"
2
-
3
-
4
- describe 'Gherkin9Adapter, Integration', :if => gherkin?(9) do
5
-
6
- let(:clazz) { CukeModeler::Gherkin9Adapter }
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) do
71
- test_file_path = CukeModeler::FileHelper.create_feature_file(:text => source_text, :name => 'adapter_test_file')
72
-
73
- CukeModeler::FeatureFile.new(test_file_path)
74
- end
75
- let(:feature_model) { feature_file_model.feature }
76
-
77
-
78
- it "does not store parsing data for a feature file's children" do
79
- model = feature_file_model
80
-
81
- expect(model.parsing_data[:comments]).to be_nil
82
- expect(model.parsing_data[:feature]).to be_nil
83
- end
84
-
85
- it "does not store parsing data for a feature's children" do
86
- model = feature_model
87
-
88
- expect(model.parsing_data[:tags]).to be_nil
89
- expect(model.parsing_data[:children]).to be_nil
90
- end
91
-
92
- it "does not store parsing data for a background's children" do
93
- model = feature_model.background
94
-
95
- expect(model.parsing_data[:background][:steps]).to be_nil
96
- end
97
-
98
- it "does not store parsing data for a scenario's children" do
99
- model = feature_model.scenarios.first
100
-
101
- expect(model.parsing_data[:scenario][:tags]).to be_nil
102
- expect(model.parsing_data[:scenario][:steps]).to be_nil
103
- end
104
-
105
- it "does not store parsing data for an outline's children" do
106
- model = feature_model.outlines.first
107
-
108
- expect(model.parsing_data[:scenario][:tags]).to be_nil
109
- expect(model.parsing_data[:scenario][:steps]).to be_nil
110
- expect(model.parsing_data[:scenario][: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[:tags]).to be_nil
117
- expect(model.parsing_data[:table_header]).to be_nil
118
- expect(model.parsing_data[:table_body]).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[:cells]).to be_nil
125
- end
126
-
127
- it "does not store parsing data for a step's children, table" do
128
- model = feature_model.outlines.first.steps.first
129
-
130
- expect(model.parsing_data[:data_table]).to be_nil
131
- end
132
-
133
- it "does not store parsing data for a step's children, doc string" do
134
- model = feature_model.outlines.first.steps.last
135
-
136
- expect(model.parsing_data[:doc_string]).to be_nil
137
- end
138
-
139
- it "does not store parsing data for a table's children" do
140
- model = feature_model.outlines.first.steps.first.block
141
-
142
- expect(model.parsing_data[:rows]).to be_nil
143
- end
144
-
145
- it "does not store parsing data for a table row's children" do
146
- model = feature_model.outlines.first.steps.first.block.rows.first
147
-
148
- expect(model.parsing_data[:cells]).to be_nil
149
- end
150
-
151
-
152
- describe 'stuff that is in no way part of the public API and entirely subject to change' do
153
-
154
- it 'provides a useful explosion message if it encounters an entirely new type of test' do
155
- partial_feature_ast = { :type => :Feature, :location => { :line => 1, :column => 1 }, :children => [{ :some_unknown_type => {} }] }
156
-
157
- expect { adapter.adapt_feature!(partial_feature_ast) }.to raise_error(ArgumentError, /Unknown.*some_unknown_type/)
158
- end
159
-
160
- end
161
-
162
- end