cuke_modeler 1.5.1 → 3.2.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 (135) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +60 -1
  3. data/LICENSE.txt +1 -1
  4. data/README.md +13 -15
  5. data/cuke_modeler.gemspec +12 -9
  6. data/lib/cuke_modeler.rb +1 -0
  7. data/lib/cuke_modeler/adapters/gherkin_10_adapter.rb +12 -0
  8. data/lib/cuke_modeler/adapters/gherkin_11_adapter.rb +12 -0
  9. data/lib/cuke_modeler/adapters/gherkin_12_adapter.rb +12 -0
  10. data/lib/cuke_modeler/adapters/gherkin_13_adapter.rb +12 -0
  11. data/lib/cuke_modeler/adapters/gherkin_14_adapter.rb +12 -0
  12. data/lib/cuke_modeler/adapters/{gherkin_6_adapter.rb → gherkin_9_adapter.rb} +105 -69
  13. data/lib/cuke_modeler/containing.rb +16 -5
  14. data/lib/cuke_modeler/described.rb +1 -0
  15. data/lib/cuke_modeler/models/background.rb +1 -1
  16. data/lib/cuke_modeler/models/cell.rb +1 -1
  17. data/lib/cuke_modeler/models/comment.rb +1 -1
  18. data/lib/cuke_modeler/models/directory.rb +2 -2
  19. data/lib/cuke_modeler/models/doc_string.rb +1 -1
  20. data/lib/cuke_modeler/models/example.rb +1 -1
  21. data/lib/cuke_modeler/models/feature.rb +16 -5
  22. data/lib/cuke_modeler/models/feature_file.rb +2 -2
  23. data/lib/cuke_modeler/models/outline.rb +1 -1
  24. data/lib/cuke_modeler/models/row.rb +1 -1
  25. data/lib/cuke_modeler/models/rule.rb +99 -0
  26. data/lib/cuke_modeler/models/scenario.rb +1 -1
  27. data/lib/cuke_modeler/models/step.rb +32 -3
  28. data/lib/cuke_modeler/models/table.rb +1 -1
  29. data/lib/cuke_modeler/models/tag.rb +1 -1
  30. data/lib/cuke_modeler/named.rb +1 -0
  31. data/lib/cuke_modeler/nested.rb +1 -0
  32. data/lib/cuke_modeler/parsed.rb +1 -0
  33. data/lib/cuke_modeler/parsing.rb +89 -102
  34. data/lib/cuke_modeler/sourceable.rb +1 -0
  35. data/lib/cuke_modeler/stepped.rb +1 -0
  36. data/lib/cuke_modeler/taggable.rb +1 -0
  37. data/lib/cuke_modeler/version.rb +1 -1
  38. data/testing/cucumber/features/analysis/step_comparison.feature +25 -0
  39. data/testing/cucumber/features/analysis/test_comparison.feature +1 -1
  40. data/testing/cucumber/features/modeling/feature_modeling.feature +28 -7
  41. data/testing/cucumber/features/modeling/feature_output.feature +45 -23
  42. data/testing/cucumber/features/modeling/rule_modeling.feature +108 -0
  43. data/testing/cucumber/features/modeling/rule_output.feature +111 -0
  44. metadata +39 -140
  45. data/.gitignore +0 -18
  46. data/.simplecov +0 -7
  47. data/.travis.yml +0 -60
  48. data/Gemfile +0 -37
  49. data/Rakefile +0 -73
  50. data/appveyor.yml +0 -61
  51. data/lib/cuke_modeler/adapters/gherkin_2_adapter.rb +0 -273
  52. data/lib/cuke_modeler/adapters/gherkin_3_adapter.rb +0 -296
  53. data/lib/cuke_modeler/adapters/gherkin_4_adapter.rb +0 -308
  54. data/testing/cucumber/step_definitions/action_steps.rb +0 -13
  55. data/testing/cucumber/step_definitions/background_steps.rb +0 -1
  56. data/testing/cucumber/step_definitions/directory_steps.rb +0 -6
  57. data/testing/cucumber/step_definitions/doc_string_steps.rb +0 -1
  58. data/testing/cucumber/step_definitions/feature_file_steps.rb +0 -16
  59. data/testing/cucumber/step_definitions/feature_steps.rb +0 -7
  60. data/testing/cucumber/step_definitions/modeling_steps.rb +0 -44
  61. data/testing/cucumber/step_definitions/setup_steps.rb +0 -32
  62. data/testing/cucumber/step_definitions/step_steps.rb +0 -3
  63. data/testing/cucumber/step_definitions/table_steps.rb +0 -1
  64. data/testing/cucumber/step_definitions/tag_steps.rb +0 -3
  65. data/testing/cucumber/step_definitions/verification_steps.rb +0 -173
  66. data/testing/cucumber/support/env.rb +0 -30
  67. data/testing/dialect_helper.rb +0 -48
  68. data/testing/file_helper.rb +0 -47
  69. data/testing/gemfiles/gherkin2.gemfile +0 -33
  70. data/testing/gemfiles/gherkin3.gemfile +0 -26
  71. data/testing/gemfiles/gherkin4.gemfile +0 -27
  72. data/testing/gemfiles/gherkin5.gemfile +0 -27
  73. data/testing/gemfiles/gherkin6.gemfile +0 -10
  74. data/testing/rspec/spec/integration/adapters/gherkin_2_adapter_spec.rb +0 -166
  75. data/testing/rspec/spec/integration/adapters/gherkin_3_adapter_spec.rb +0 -166
  76. data/testing/rspec/spec/integration/adapters/gherkin_4_adapter_spec.rb +0 -165
  77. data/testing/rspec/spec/integration/adapters/gherkin_6_adapter_spec.rb +0 -166
  78. data/testing/rspec/spec/integration/models/background_integration_spec.rb +0 -442
  79. data/testing/rspec/spec/integration/models/cell_integration_spec.rb +0 -335
  80. data/testing/rspec/spec/integration/models/comment_integration_spec.rb +0 -177
  81. data/testing/rspec/spec/integration/models/directory_integration_spec.rb +0 -218
  82. data/testing/rspec/spec/integration/models/doc_string_integration_spec.rb +0 -402
  83. data/testing/rspec/spec/integration/models/example_integration_spec.rb +0 -741
  84. data/testing/rspec/spec/integration/models/feature_file_integration_spec.rb +0 -272
  85. data/testing/rspec/spec/integration/models/feature_integration_spec.rb +0 -650
  86. data/testing/rspec/spec/integration/models/model_integration_spec.rb +0 -15
  87. data/testing/rspec/spec/integration/models/outline_integration_spec.rb +0 -624
  88. data/testing/rspec/spec/integration/models/row_integration_spec.rb +0 -291
  89. data/testing/rspec/spec/integration/models/scenario_integration_spec.rb +0 -479
  90. data/testing/rspec/spec/integration/models/step_integration_spec.rb +0 -475
  91. data/testing/rspec/spec/integration/models/table_integration_spec.rb +0 -337
  92. data/testing/rspec/spec/integration/models/tag_integration_spec.rb +0 -259
  93. data/testing/rspec/spec/integration/nested_integration_spec.rb +0 -91
  94. data/testing/rspec/spec/integration/parsing_integration_spec.rb +0 -122
  95. data/testing/rspec/spec/integration/shared/models_integration_specs.rb +0 -18
  96. data/testing/rspec/spec/spec_helper.rb +0 -125
  97. data/testing/rspec/spec/unit/cuke_modeler_unit_spec.rb +0 -25
  98. data/testing/rspec/spec/unit/described_unit_spec.rb +0 -23
  99. data/testing/rspec/spec/unit/models/background_unit_spec.rb +0 -83
  100. data/testing/rspec/spec/unit/models/cell_unit_spec.rb +0 -68
  101. data/testing/rspec/spec/unit/models/comment_unit_spec.rb +0 -68
  102. data/testing/rspec/spec/unit/models/directory_unit_spec.rb +0 -127
  103. data/testing/rspec/spec/unit/models/doc_string_unit_spec.rb +0 -100
  104. data/testing/rspec/spec/unit/models/example_unit_spec.rb +0 -133
  105. data/testing/rspec/spec/unit/models/feature_file_unit_spec.rb +0 -125
  106. data/testing/rspec/spec/unit/models/feature_unit_spec.rb +0 -157
  107. data/testing/rspec/spec/unit/models/model_unit_spec.rb +0 -15
  108. data/testing/rspec/spec/unit/models/outline_unit_spec.rb +0 -117
  109. data/testing/rspec/spec/unit/models/row_unit_spec.rb +0 -68
  110. data/testing/rspec/spec/unit/models/scenario_unit_spec.rb +0 -86
  111. data/testing/rspec/spec/unit/models/step_unit_spec.rb +0 -109
  112. data/testing/rspec/spec/unit/models/table_unit_spec.rb +0 -77
  113. data/testing/rspec/spec/unit/models/tag_unit_spec.rb +0 -68
  114. data/testing/rspec/spec/unit/named_unit_spec.rb +0 -23
  115. data/testing/rspec/spec/unit/nested_unit_spec.rb +0 -43
  116. data/testing/rspec/spec/unit/parsed_unit_spec.rb +0 -27
  117. data/testing/rspec/spec/unit/parsing_unit_spec.rb +0 -54
  118. data/testing/rspec/spec/unit/shared/bare_bones_models_unit_specs.rb +0 -14
  119. data/testing/rspec/spec/unit/shared/containing_models_unit_specs.rb +0 -127
  120. data/testing/rspec/spec/unit/shared/described_models_unit_specs.rb +0 -38
  121. data/testing/rspec/spec/unit/shared/keyworded_models_unit_specs.rb +0 -58
  122. data/testing/rspec/spec/unit/shared/models_unit_specs.rb +0 -15
  123. data/testing/rspec/spec/unit/shared/named_models_unit_specs.rb +0 -39
  124. data/testing/rspec/spec/unit/shared/nested_models_unit_specs.rb +0 -51
  125. data/testing/rspec/spec/unit/shared/parsed_models_unit_specs.rb +0 -39
  126. data/testing/rspec/spec/unit/shared/prepopulated_models_unit_specs.rb +0 -18
  127. data/testing/rspec/spec/unit/shared/sourced_models_unit_specs.rb +0 -39
  128. data/testing/rspec/spec/unit/shared/stepped_models_unit_specs.rb +0 -46
  129. data/testing/rspec/spec/unit/shared/stringifiable_models_unit_specs.rb +0 -18
  130. data/testing/rspec/spec/unit/shared/tagged_models_unit_specs.rb +0 -72
  131. data/testing/rspec/spec/unit/sourceable_unit_spec.rb +0 -27
  132. data/testing/rspec/spec/unit/stepped_unit_spec.rb +0 -23
  133. data/testing/rspec/spec/unit/taggable_unit_spec.rb +0 -69
  134. data/testing/test_languages.json +0 -45
  135. data/todo.txt +0 -24
@@ -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
@@ -1,166 +0,0 @@
1
- require "#{File.dirname(__FILE__)}/../../spec_helper"
2
-
3
-
4
- describe 'Gherkin6Adapter, Integration', :gherkin6 => true do
5
-
6
- let(:clazz) { CukeModeler::Gherkin6Adapter }
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[:background][: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[:scenario][:tags]).to be_nil
99
- expect(model.parsing_data[:scenario][: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[:scenario][:tags]).to be_nil
106
- expect(model.parsing_data[:scenario][:steps]).to be_nil
107
- expect(model.parsing_data[:scenario][: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[:table_header]).to be_nil
115
- expect(model.parsing_data[:table_body]).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[:data_table]).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[:doc_string]).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 => [{:some_unknown_type => {}}]}
153
-
154
- expect { adapter.adapt_feature!(partial_feature_ast) }.to raise_error(ArgumentError, /Unknown.*some_unknown_type/)
155
- end
156
-
157
- # TODO: no longer possible in G6?
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}, :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 => ""}}]}]}
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