cuke_modeler 1.0.4 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/History.md +12 -0
- data/lib/cuke_modeler/adapters/gherkin_2_adapter.rb +5 -5
- data/lib/cuke_modeler/adapters/gherkin_3_adapter.rb +8 -5
- data/lib/cuke_modeler/adapters/gherkin_4_adapter.rb +8 -5
- data/lib/cuke_modeler/containing.rb +12 -7
- data/lib/cuke_modeler/models/background.rb +7 -2
- data/lib/cuke_modeler/models/cell.rb +2 -1
- data/lib/cuke_modeler/models/doc_string.rb +2 -1
- data/lib/cuke_modeler/models/example.rb +8 -4
- data/lib/cuke_modeler/models/feature.rb +4 -1
- data/lib/cuke_modeler/models/outline.rb +6 -2
- data/lib/cuke_modeler/models/row.rb +2 -1
- data/lib/cuke_modeler/models/scenario.rb +7 -2
- data/lib/cuke_modeler/models/step.rb +2 -1
- data/lib/cuke_modeler/models/table.rb +2 -1
- data/lib/cuke_modeler/models/tag.rb +2 -1
- data/lib/cuke_modeler/parsing.rb +45 -0
- data/lib/cuke_modeler/version.rb +1 -1
- data/testing/cucumber/features/modeling/background_modeling.feature +7 -0
- data/testing/cucumber/features/modeling/background_output.feature +6 -1
- data/testing/cucumber/features/modeling/directory_output.feature +6 -1
- data/testing/cucumber/features/modeling/doc_string_output.feature +6 -1
- data/testing/cucumber/features/modeling/example_modeling.feature +7 -0
- data/testing/cucumber/features/modeling/example_output.feature +6 -1
- data/testing/cucumber/features/modeling/feature_file_output.feature +6 -1
- data/testing/cucumber/features/modeling/feature_modeling.feature +7 -0
- data/testing/cucumber/features/modeling/feature_output.feature +6 -1
- data/testing/cucumber/features/modeling/model_output.feature +1 -8
- data/testing/cucumber/features/modeling/outline_modeling.feature +7 -0
- data/testing/cucumber/features/modeling/outline_output.feature +6 -1
- data/testing/cucumber/features/modeling/row_output.feature +6 -1
- data/testing/cucumber/features/modeling/scenario_modeling.feature +7 -0
- data/testing/cucumber/features/modeling/scenario_output.feature +6 -1
- data/testing/cucumber/features/modeling/step_output.feature +6 -1
- data/testing/cucumber/features/modeling/table_output.feature +6 -1
- data/testing/cucumber/features/modeling/tag_output.feature +6 -1
- data/testing/cucumber/step_definitions/verification_steps.rb +21 -12
- data/testing/dialect_helper.rb +48 -0
- data/testing/rspec/spec/integration/background_integration_spec.rb +93 -88
- data/testing/rspec/spec/integration/cell_integration_spec.rb +26 -27
- data/testing/rspec/spec/integration/directory_integration_spec.rb +4 -4
- data/testing/rspec/spec/integration/doc_string_integration_spec.rb +38 -39
- data/testing/rspec/spec/integration/example_integration_spec.rb +97 -95
- data/testing/rspec/spec/integration/feature_file_integration_spec.rb +5 -5
- data/testing/rspec/spec/integration/feature_integration_spec.rb +157 -155
- data/testing/rspec/spec/integration/gherkin_2_adapter_spec.rb +17 -17
- data/testing/rspec/spec/integration/gherkin_3_adapter_spec.rb +17 -17
- data/testing/rspec/spec/integration/gherkin_4_adapter_spec.rb +17 -17
- data/testing/rspec/spec/integration/outline_integration_spec.rb +359 -354
- data/testing/rspec/spec/integration/parsing_integration_spec.rb +30 -2
- data/testing/rspec/spec/integration/row_integration_spec.rb +23 -25
- data/testing/rspec/spec/integration/scenario_integration_spec.rb +238 -235
- data/testing/rspec/spec/integration/step_integration_spec.rb +69 -64
- data/testing/rspec/spec/integration/table_integration_spec.rb +32 -36
- data/testing/rspec/spec/integration/tag_integration_spec.rb +26 -27
- data/testing/rspec/spec/spec_helper.rb +43 -0
- data/testing/rspec/spec/unit/background_unit_spec.rb +7 -0
- data/testing/rspec/spec/unit/example_unit_spec.rb +7 -0
- data/testing/rspec/spec/unit/feature_unit_spec.rb +7 -0
- data/testing/rspec/spec/unit/outline_unit_spec.rb +7 -0
- data/testing/rspec/spec/unit/parsing_unit_spec.rb +33 -0
- data/testing/rspec/spec/unit/scenario_unit_spec.rb +7 -0
- data/testing/rspec/spec/unit/shared/keyworded_models_unit_specs.rb +58 -0
- data/testing/rspec/spec/unit/step_unit_spec.rb +1 -23
- data/testing/test_languages.json +45 -0
- data/todo.txt +1 -1
- metadata +6 -3
@@ -4,6 +4,7 @@ module CukeModeler
|
|
4
4
|
|
5
5
|
class Table < Model
|
6
6
|
|
7
|
+
include Parsing
|
7
8
|
include Parsed
|
8
9
|
include Sourceable
|
9
10
|
|
@@ -41,7 +42,7 @@ module CukeModeler
|
|
41
42
|
|
42
43
|
|
43
44
|
def parse_source(source_text)
|
44
|
-
base_file_string = "
|
45
|
+
base_file_string = "#{dialect_feature_keyword}:\n#{dialect_scenario_keyword}:\n#{dialect_step_keyword} step\n"
|
45
46
|
source_text = base_file_string + source_text
|
46
47
|
|
47
48
|
parsed_file = Parsing::parse_text(source_text, 'cuke_modeler_stand_alone_table.feature')
|
@@ -4,6 +4,7 @@ module CukeModeler
|
|
4
4
|
|
5
5
|
class Tag < Model
|
6
6
|
|
7
|
+
include Parsing
|
7
8
|
include Parsed
|
8
9
|
include Sourceable
|
9
10
|
|
@@ -34,7 +35,7 @@ module CukeModeler
|
|
34
35
|
|
35
36
|
|
36
37
|
def parse_source(source_text)
|
37
|
-
base_file_string = "\
|
38
|
+
base_file_string = "\n#{dialect_feature_keyword}: Fake feature to parse"
|
38
39
|
source_text = source_text + base_file_string
|
39
40
|
|
40
41
|
parsed_file = Parsing::parse_text(source_text, 'cuke_modeler_stand_alone_tag.feature')
|
data/lib/cuke_modeler/parsing.rb
CHANGED
@@ -73,6 +73,24 @@ module CukeModeler
|
|
73
73
|
|
74
74
|
class << self
|
75
75
|
|
76
|
+
# The dialect that will be used to parse snippets of Gherkin text
|
77
|
+
attr_writer :dialect
|
78
|
+
|
79
|
+
|
80
|
+
# The dialect that will be used to parse snippets of Gherkin text
|
81
|
+
def dialect
|
82
|
+
@dialect || 'en'
|
83
|
+
end
|
84
|
+
|
85
|
+
# The dialects currently known by the gherkin gem
|
86
|
+
def dialects
|
87
|
+
unless @dialects
|
88
|
+
@dialects = Gem.loaded_specs['gherkin'].version.version[/^2/] ? Gherkin::I18n::LANGUAGES : Gherkin::DIALECTS
|
89
|
+
end
|
90
|
+
|
91
|
+
@dialects
|
92
|
+
end
|
93
|
+
|
76
94
|
# Parses the Cucumber feature given in *source_text* and returns an array
|
77
95
|
# containing the hash representation of its logical structure.
|
78
96
|
def parse_text(source_text, filename = 'cuke_modeler_fake_file.feature')
|
@@ -92,5 +110,32 @@ module CukeModeler
|
|
92
110
|
end
|
93
111
|
|
94
112
|
end
|
113
|
+
|
114
|
+
|
115
|
+
private
|
116
|
+
|
117
|
+
|
118
|
+
def dialect_feature_keyword
|
119
|
+
get_word(Parsing.dialects[Parsing.dialect]['feature'])
|
120
|
+
end
|
121
|
+
|
122
|
+
def dialect_scenario_keyword
|
123
|
+
get_word(Parsing.dialects[Parsing.dialect]['scenario'])
|
124
|
+
end
|
125
|
+
|
126
|
+
def dialect_outline_keyword
|
127
|
+
get_word(Parsing.dialects[Parsing.dialect]['scenarioOutline'] || Parsing.dialects[Parsing.dialect]['scenario_outline'])
|
128
|
+
end
|
129
|
+
|
130
|
+
def dialect_step_keyword
|
131
|
+
get_word(Parsing.dialects[Parsing.dialect]['given'])
|
132
|
+
end
|
133
|
+
|
134
|
+
def get_word(word_set)
|
135
|
+
word_set = word_set.is_a?(Array) ? word_set : word_set.split('|')
|
136
|
+
|
137
|
+
word_set.first
|
138
|
+
end
|
139
|
+
|
95
140
|
end
|
96
141
|
end
|
data/lib/cuke_modeler/version.rb
CHANGED
@@ -24,6 +24,13 @@ Feature: Background modeling
|
|
24
24
|
"""
|
25
25
|
|
26
26
|
|
27
|
+
Scenario: Modeling a backgrounds's keyword
|
28
|
+
When the backgrounds's keyword is requested
|
29
|
+
"""
|
30
|
+
@model.keyword
|
31
|
+
"""
|
32
|
+
Then the model returns "Background"
|
33
|
+
|
27
34
|
Scenario: Modeling a backgrounds's name
|
28
35
|
When the background's name is requested
|
29
36
|
"""
|
@@ -1,6 +1,7 @@
|
|
1
1
|
Feature: Background output
|
2
2
|
|
3
|
-
A background model's string output is a Gherkin representation of itself.
|
3
|
+
A background model's string output is a Gherkin representation of itself. As such, output from a background model can be used as
|
4
|
+
input for the same kind of model.
|
4
5
|
|
5
6
|
|
6
7
|
Scenario: Outputting a background model
|
@@ -40,3 +41,7 @@ Feature: Background output
|
|
40
41
|
some string
|
41
42
|
\"\"\"
|
42
43
|
"""
|
44
|
+
And the output can be used to make an equivalent model
|
45
|
+
"""
|
46
|
+
CukeModeler::Background.new(@model.to_s)
|
47
|
+
"""
|
@@ -1,6 +1,7 @@
|
|
1
1
|
Feature: Directory output
|
2
2
|
|
3
|
-
A directory model's string output is simply the file path of the directory that it models.
|
3
|
+
A directory model's string output is simply the file path of the directory that it models. As such, output from a directory model can be used as
|
4
|
+
input for the same kind of model.
|
4
5
|
|
5
6
|
|
6
7
|
Scenario: Outputting a directory model
|
@@ -10,3 +11,7 @@ Feature: Directory output
|
|
10
11
|
"""
|
11
12
|
<path_to>/some_directory
|
12
13
|
"""
|
14
|
+
And the output can be used to make an equivalent model
|
15
|
+
"""
|
16
|
+
CukeModeler::Directory.new(@model.to_s)
|
17
|
+
"""
|
@@ -1,6 +1,7 @@
|
|
1
1
|
Feature: Doc string output
|
2
2
|
|
3
|
-
A doc string model's string output is a Gherkin representation of itself.
|
3
|
+
A doc string model's string output is a Gherkin representation of itself. As such, output from a doc string model can be used as
|
4
|
+
input for the same kind of model.
|
4
5
|
|
5
6
|
|
6
7
|
Scenario: Outputting a doc string model
|
@@ -30,3 +31,7 @@ Feature: Doc string output
|
|
30
31
|
|
31
32
|
\"\"\"
|
32
33
|
"""
|
34
|
+
And the output can be used to make an equivalent model
|
35
|
+
"""
|
36
|
+
CukeModeler::DocString.new(@model.to_s)
|
37
|
+
"""
|
@@ -25,6 +25,13 @@ Feature: Example modeling
|
|
25
25
|
"""
|
26
26
|
|
27
27
|
|
28
|
+
Scenario: Modeling an example's keyword
|
29
|
+
When the example's keyword is requested
|
30
|
+
"""
|
31
|
+
@model.keyword
|
32
|
+
"""
|
33
|
+
Then the model returns "Examples"
|
34
|
+
|
28
35
|
Scenario: Modeling an example's name
|
29
36
|
When the example's name is requested
|
30
37
|
"""
|
@@ -1,6 +1,7 @@
|
|
1
1
|
Feature: Example output
|
2
2
|
|
3
|
-
An example model's string output is a Gherkin representation of itself.
|
3
|
+
An example model's string output is a Gherkin representation of itself. As such, output from an example model can be used as
|
4
|
+
input for the same kind of model.
|
4
5
|
|
5
6
|
|
6
7
|
Scenario: Outputting an example model
|
@@ -37,3 +38,7 @@ Feature: Example output
|
|
37
38
|
| value1 | value2 |
|
38
39
|
| value3 | value4 |
|
39
40
|
"""
|
41
|
+
And the output can be used to make an equivalent model
|
42
|
+
"""
|
43
|
+
CukeModeler::Example.new(@model.to_s)
|
44
|
+
"""
|
@@ -1,6 +1,7 @@
|
|
1
1
|
Feature: Feature file output
|
2
2
|
|
3
|
-
A feature file model's string output is simply the file path of the feature file that it models.
|
3
|
+
A feature file model's string output is simply the file path of the feature file that it models. As such, output from a feature file model can be used as
|
4
|
+
input for the same kind of model.
|
4
5
|
|
5
6
|
|
6
7
|
Scenario: Outputting a feature file model
|
@@ -10,3 +11,7 @@ Feature: Feature file output
|
|
10
11
|
"""
|
11
12
|
<path_to>/some_feature_file.feature
|
12
13
|
"""
|
14
|
+
And the output can be used to make an equivalent model
|
15
|
+
"""
|
16
|
+
CukeModeler::FeatureFile.new(@model.to_s)
|
17
|
+
"""
|
@@ -43,6 +43,13 @@ present in that feature.
|
|
43
43
|
"""
|
44
44
|
|
45
45
|
|
46
|
+
Scenario: Modeling a feature's keyword
|
47
|
+
When the feature's keyword is requested
|
48
|
+
"""
|
49
|
+
@model.keyword
|
50
|
+
"""
|
51
|
+
Then the model returns "Feature"
|
52
|
+
|
46
53
|
Scenario: Modeling a feature's name
|
47
54
|
When the feature's name is requested
|
48
55
|
"""
|
@@ -1,6 +1,7 @@
|
|
1
1
|
Feature: Feature output
|
2
2
|
|
3
|
-
A feature model's string output is a Gherkin representation of itself.
|
3
|
+
A feature model's string output is a Gherkin representation of itself. As such, output from a feature model can be used as
|
4
|
+
input for the same kind of model.
|
4
5
|
|
5
6
|
|
6
7
|
Scenario: Outputting a feature model
|
@@ -102,3 +103,7 @@ Feature: Feature output
|
|
102
103
|
| param |
|
103
104
|
| value |
|
104
105
|
"""
|
106
|
+
And the output can be used to make an equivalent model
|
107
|
+
"""
|
108
|
+
CukeModeler::Feature.new(@model.to_s)
|
109
|
+
"""
|
@@ -2,8 +2,7 @@ Feature: Model output
|
|
2
2
|
|
3
3
|
All models can be output in text form. For models that represent parts of the file structure, this text
|
4
4
|
will be a path and for models that represent parts of a feature file, this text will be Gherkin (see the
|
5
|
-
model output documentation for specific models for details).
|
6
|
-
input for the same kind of model.
|
5
|
+
model output documentation for specific models for details).
|
7
6
|
|
8
7
|
|
9
8
|
Scenario: Outputting a model
|
@@ -14,9 +13,3 @@ Feature: Model output
|
|
14
13
|
|
15
14
|
model.to_s
|
16
15
|
"""
|
17
|
-
And the output can be used to make an equivalent model
|
18
|
-
"""
|
19
|
-
model = <model_class>.new
|
20
|
-
|
21
|
-
<model_class>.new(model.to_s)
|
22
|
-
"""
|
@@ -32,6 +32,13 @@ Feature: Outline modeling
|
|
32
32
|
"""
|
33
33
|
|
34
34
|
|
35
|
+
Scenario: Modeling an outline's keyword
|
36
|
+
When the outline's keyword is requested
|
37
|
+
"""
|
38
|
+
@model.keyword
|
39
|
+
"""
|
40
|
+
Then the model returns "Scenario Outline"
|
41
|
+
|
35
42
|
Scenario: Modeling an outline's name
|
36
43
|
When the outline's name is requested
|
37
44
|
"""
|
@@ -1,6 +1,7 @@
|
|
1
1
|
Feature: Outline output
|
2
2
|
|
3
|
-
An outline model's string output is a Gherkin representation of itself.
|
3
|
+
An outline model's string output is a Gherkin representation of itself. As such, output from an outline model can be used as
|
4
|
+
input for the same kind of model.
|
4
5
|
|
5
6
|
|
6
7
|
Scenario: Outputting an outline model
|
@@ -67,3 +68,7 @@ Feature: Outline output
|
|
67
68
|
| value |
|
68
69
|
| y |
|
69
70
|
"""
|
71
|
+
And the output can be used to make an equivalent model
|
72
|
+
"""
|
73
|
+
CukeModeler::Outline.new(@model.to_s)
|
74
|
+
"""
|
@@ -1,6 +1,7 @@
|
|
1
1
|
Feature: Row output
|
2
2
|
|
3
|
-
A row model's string output is a Gherkin representation of itself.
|
3
|
+
A row model's string output is a Gherkin representation of itself. As such, output from a row model can be used as
|
4
|
+
input for the same kind of model.
|
4
5
|
|
5
6
|
|
6
7
|
Scenario: Outputting a row model
|
@@ -20,3 +21,7 @@ Feature: Row output
|
|
20
21
|
"""
|
21
22
|
| foo | bar |
|
22
23
|
"""
|
24
|
+
And the output can be used to make an equivalent model
|
25
|
+
"""
|
26
|
+
CukeModeler::Row.new(@model.to_s)
|
27
|
+
"""
|
@@ -24,6 +24,13 @@ Feature: Scenario modeling
|
|
24
24
|
"""
|
25
25
|
|
26
26
|
|
27
|
+
Scenario: Modeling a scenario's keyword
|
28
|
+
When the scenario's keyword is requested
|
29
|
+
"""
|
30
|
+
@model.keyword
|
31
|
+
"""
|
32
|
+
Then the model returns "Scenario"
|
33
|
+
|
27
34
|
Scenario: Modeling a scenario's name
|
28
35
|
When the scenario's name is requested
|
29
36
|
"""
|
@@ -1,6 +1,7 @@
|
|
1
1
|
Feature: Scenario output
|
2
2
|
|
3
|
-
A scenario model's string output is a Gherkin representation of itself.
|
3
|
+
A scenario model's string output is a Gherkin representation of itself. As such, output from a scenario model can be used as
|
4
|
+
input for the same kind of model.
|
4
5
|
|
5
6
|
|
6
7
|
Scenario: Outputting a scenario model
|
@@ -43,3 +44,7 @@ Feature: Scenario output
|
|
43
44
|
some string
|
44
45
|
\"\"\"
|
45
46
|
"""
|
47
|
+
And the output can be used to make an equivalent model
|
48
|
+
"""
|
49
|
+
CukeModeler::Scenario.new(@model.to_s)
|
50
|
+
"""
|
@@ -1,6 +1,7 @@
|
|
1
1
|
Feature: Step output
|
2
2
|
|
3
|
-
A step model's string output is a Gherkin representation of itself.
|
3
|
+
A step model's string output is a Gherkin representation of itself. As such, output from a step model can be used as
|
4
|
+
input for the same kind of model.
|
4
5
|
|
5
6
|
|
6
7
|
Scenario: Outputting a step model
|
@@ -27,3 +28,7 @@ Feature: Step output
|
|
27
28
|
| value1 |
|
28
29
|
| value2 |
|
29
30
|
"""
|
31
|
+
And the output can be used to make an equivalent model
|
32
|
+
"""
|
33
|
+
CukeModeler::Step.new(@model.to_s)
|
34
|
+
"""
|
@@ -1,6 +1,7 @@
|
|
1
1
|
Feature: Table output
|
2
2
|
|
3
|
-
A table model's string output is a Gherkin representation of itself.
|
3
|
+
A table model's string output is a Gherkin representation of itself. As such, output from a table model can be used as
|
4
|
+
input for the same kind of model.
|
4
5
|
|
5
6
|
|
6
7
|
Scenario: Outputting a table model
|
@@ -22,3 +23,7 @@ Feature: Table output
|
|
22
23
|
| value1 | value2 |
|
23
24
|
| value3 | value4 |
|
24
25
|
"""
|
26
|
+
And the output can be used to make an equivalent model
|
27
|
+
"""
|
28
|
+
CukeModeler::Table.new(@model.to_s)
|
29
|
+
"""
|
@@ -1,6 +1,7 @@
|
|
1
1
|
Feature: Tag output
|
2
2
|
|
3
|
-
A tag model's string output is a Gherkin representation of itself.
|
3
|
+
A tag model's string output is a Gherkin representation of itself. As such, output from a tag model can be used as
|
4
|
+
input for the same kind of model.
|
4
5
|
|
5
6
|
|
6
7
|
Scenario: Outputting a tag model
|
@@ -20,3 +21,7 @@ Feature: Tag output
|
|
20
21
|
"""
|
21
22
|
@a_tag
|
22
23
|
"""
|
24
|
+
And the output can be used to make an equivalent model
|
25
|
+
"""
|
26
|
+
CukeModeler::Tag.new(@model.to_s)
|
27
|
+
"""
|
@@ -1,6 +1,8 @@
|
|
1
1
|
Then(/^all of them can be output as text appropriate to the model type$/) do |code_text|
|
2
|
+
original_text = code_text
|
3
|
+
|
2
4
|
@available_model_classes.each do |clazz|
|
3
|
-
code_text.gsub
|
5
|
+
code_text = original_text.gsub('<model_class>', clazz.to_s)
|
4
6
|
|
5
7
|
expect(clazz.instance_method(:to_s).owner).to equal(clazz), "#{clazz} does not override #to_s"
|
6
8
|
|
@@ -16,8 +18,10 @@ Then(/^the following text is provided:$/) do |expected_text|
|
|
16
18
|
end
|
17
19
|
|
18
20
|
Then(/^all of them can be contained inside of another model$/) do |code_text|
|
21
|
+
original_text = code_text
|
22
|
+
|
19
23
|
@available_model_classes.each do |clazz|
|
20
|
-
code_text.gsub
|
24
|
+
code_text = original_text.gsub('<model_class>', clazz.to_s)
|
21
25
|
|
22
26
|
expect(clazz.new).to respond_to(:parent_model)
|
23
27
|
|
@@ -27,8 +31,10 @@ Then(/^all of them can be contained inside of another model$/) do |code_text|
|
|
27
31
|
end
|
28
32
|
|
29
33
|
And(/^all of them can contain other models$/) do |code_text|
|
34
|
+
original_text = code_text
|
35
|
+
|
30
36
|
@available_model_classes.each do |clazz|
|
31
|
-
code_text.gsub
|
37
|
+
code_text = original_text.gsub('<model_class>', clazz.to_s)
|
32
38
|
|
33
39
|
expect(clazz.new).to respond_to(:children)
|
34
40
|
|
@@ -38,8 +44,10 @@ And(/^all of them can contain other models$/) do |code_text|
|
|
38
44
|
end
|
39
45
|
|
40
46
|
Then(/^all of them can be created without further context$/) do |code_text|
|
47
|
+
original_text = code_text
|
48
|
+
|
41
49
|
@available_model_classes.each do |clazz|
|
42
|
-
code_text.gsub
|
50
|
+
code_text = original_text.gsub('<model_class>', clazz.to_s)
|
43
51
|
|
44
52
|
expect { clazz.new }.to_not raise_error
|
45
53
|
|
@@ -73,18 +81,19 @@ Then(/^the model returns models for the following directories:$/) do |directory_
|
|
73
81
|
end
|
74
82
|
|
75
83
|
And(/^the output can be used to make an equivalent model$/) do |code_text|
|
76
|
-
@
|
77
|
-
code_text.gsub!('<model_class>', clazz.to_s)
|
84
|
+
clazz = @model.class
|
78
85
|
|
79
|
-
|
80
|
-
|
86
|
+
base_output = @model.to_s
|
87
|
+
remodeled_output = clazz.new(base_output).to_s
|
81
88
|
|
82
|
-
|
83
|
-
|
84
|
-
|
89
|
+
expect(remodeled_output).to eq(base_output)
|
90
|
+
|
91
|
+
# Make sure that the example code is valid
|
92
|
+
expect { eval(code_text) }.to_not raise_error
|
85
93
|
end
|
86
94
|
|
87
95
|
Then(/^all of them provide access to the parsing data that was used to create them$/) do |code_text|
|
96
|
+
original_text = code_text
|
88
97
|
unparsed_models = [CukeModeler::Model, CukeModeler::FeatureFile, CukeModeler::Directory]
|
89
98
|
|
90
99
|
@available_model_classes.each do |clazz|
|
@@ -93,7 +102,7 @@ Then(/^all of them provide access to the parsing data that was used to create th
|
|
93
102
|
expect(clazz.new).to respond_to(:parsing_data)
|
94
103
|
|
95
104
|
# Make sure that the example code is valid
|
96
|
-
code_text.gsub
|
105
|
+
code_text = original_text.gsub('<model_class>', clazz.to_s)
|
97
106
|
code_text.gsub!('<source_text>', '')
|
98
107
|
|
99
108
|
expect { eval(code_text) }.to_not raise_error
|