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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +53 -1
- data/README.md +14 -16
- data/cuke_modeler.gemspec +33 -21
- data/lib/cuke_modeler.rb +2 -1
- data/lib/cuke_modeler/adapters/gherkin_10_adapter.rb +13 -0
- data/lib/cuke_modeler/adapters/gherkin_11_adapter.rb +13 -0
- data/lib/cuke_modeler/adapters/gherkin_12_adapter.rb +13 -0
- data/lib/cuke_modeler/adapters/gherkin_13_adapter.rb +13 -0
- data/lib/cuke_modeler/adapters/gherkin_14_adapter.rb +13 -0
- data/lib/cuke_modeler/adapters/gherkin_15_adapter.rb +13 -0
- data/lib/cuke_modeler/adapters/gherkin_9_adapter.rb +356 -4
- data/lib/cuke_modeler/containing.rb +41 -89
- data/lib/cuke_modeler/described.rb +40 -1
- data/lib/cuke_modeler/models/background.rb +12 -12
- data/lib/cuke_modeler/models/cell.rb +14 -8
- data/lib/cuke_modeler/models/comment.rb +6 -6
- data/lib/cuke_modeler/models/directory.rb +14 -18
- data/lib/cuke_modeler/models/doc_string.rb +11 -8
- data/lib/cuke_modeler/models/example.rb +64 -46
- data/lib/cuke_modeler/models/feature.rb +38 -20
- data/lib/cuke_modeler/models/feature_file.rb +6 -8
- data/lib/cuke_modeler/models/model.rb +2 -1
- data/lib/cuke_modeler/models/outline.rb +20 -15
- data/lib/cuke_modeler/models/row.rb +11 -8
- data/lib/cuke_modeler/models/rule.rb +101 -0
- data/lib/cuke_modeler/models/scenario.rb +18 -13
- data/lib/cuke_modeler/models/step.rb +41 -19
- data/lib/cuke_modeler/models/table.rb +10 -7
- data/lib/cuke_modeler/models/tag.rb +10 -6
- data/lib/cuke_modeler/named.rb +5 -1
- data/lib/cuke_modeler/nested.rb +22 -18
- data/lib/cuke_modeler/parsed.rb +8 -0
- data/lib/cuke_modeler/parsing.rb +55 -74
- data/lib/cuke_modeler/sourceable.rb +8 -0
- data/lib/cuke_modeler/stepped.rb +8 -0
- data/lib/cuke_modeler/taggable.rb +9 -1
- data/lib/cuke_modeler/version.rb +1 -1
- data/testing/cucumber/features/modeling/feature_modeling.feature +28 -7
- data/testing/cucumber/features/modeling/feature_output.feature +45 -23
- data/testing/cucumber/features/modeling/rule_modeling.feature +108 -0
- data/testing/cucumber/features/modeling/rule_output.feature +111 -0
- metadata +68 -161
- data/.gitignore +0 -18
- data/.simplecov +0 -7
- data/.travis.yml +0 -81
- data/Gemfile +0 -44
- data/Rakefile +0 -73
- data/appveyor.yml +0 -88
- data/lib/cuke_modeler/adapters/gherkin_2_adapter.rb +0 -274
- data/lib/cuke_modeler/adapters/gherkin_3_adapter.rb +0 -297
- data/lib/cuke_modeler/adapters/gherkin_4_adapter.rb +0 -309
- data/lib/cuke_modeler/adapters/gherkin_5_adapter.rb +0 -12
- data/lib/cuke_modeler/adapters/gherkin_6_adapter.rb +0 -310
- data/lib/cuke_modeler/adapters/gherkin_7_adapter.rb +0 -307
- data/lib/cuke_modeler/adapters/gherkin_8_adapter.rb +0 -12
- data/testing/cucumber/step_definitions/action_steps.rb +0 -13
- data/testing/cucumber/step_definitions/background_steps.rb +0 -1
- data/testing/cucumber/step_definitions/directory_steps.rb +0 -6
- data/testing/cucumber/step_definitions/doc_string_steps.rb +0 -1
- data/testing/cucumber/step_definitions/feature_file_steps.rb +0 -16
- data/testing/cucumber/step_definitions/feature_steps.rb +0 -7
- data/testing/cucumber/step_definitions/modeling_steps.rb +0 -49
- data/testing/cucumber/step_definitions/setup_steps.rb +0 -32
- data/testing/cucumber/step_definitions/step_steps.rb +0 -3
- data/testing/cucumber/step_definitions/table_steps.rb +0 -1
- data/testing/cucumber/step_definitions/tag_steps.rb +0 -3
- data/testing/cucumber/step_definitions/verification_steps.rb +0 -181
- data/testing/cucumber/support/env.rb +0 -30
- data/testing/dialect_helper.rb +0 -48
- data/testing/file_helper.rb +0 -47
- data/testing/gemfiles/gherkin2.gemfile +0 -33
- data/testing/gemfiles/gherkin3.gemfile +0 -26
- data/testing/gemfiles/gherkin4.gemfile +0 -27
- data/testing/gemfiles/gherkin5.gemfile +0 -27
- data/testing/gemfiles/gherkin6.gemfile +0 -10
- data/testing/gemfiles/gherkin7.gemfile +0 -9
- data/testing/gemfiles/gherkin8.gemfile +0 -9
- data/testing/gemfiles/gherkin9.gemfile +0 -9
- data/testing/helper_methods.rb +0 -23
- data/testing/rspec/spec/integration/adapters/gherkin_2_adapter_spec.rb +0 -166
- data/testing/rspec/spec/integration/adapters/gherkin_3_adapter_spec.rb +0 -166
- data/testing/rspec/spec/integration/adapters/gherkin_4_adapter_spec.rb +0 -165
- data/testing/rspec/spec/integration/adapters/gherkin_5_adapter_spec.rb +0 -165
- data/testing/rspec/spec/integration/adapters/gherkin_6_adapter_spec.rb +0 -159
- data/testing/rspec/spec/integration/adapters/gherkin_7_adapter_spec.rb +0 -162
- data/testing/rspec/spec/integration/adapters/gherkin_8_adapter_spec.rb +0 -162
- data/testing/rspec/spec/integration/adapters/gherkin_9_adapter_spec.rb +0 -162
- data/testing/rspec/spec/integration/models/background_integration_spec.rb +0 -438
- data/testing/rspec/spec/integration/models/cell_integration_spec.rb +0 -338
- data/testing/rspec/spec/integration/models/comment_integration_spec.rb +0 -180
- data/testing/rspec/spec/integration/models/directory_integration_spec.rb +0 -218
- data/testing/rspec/spec/integration/models/doc_string_integration_spec.rb +0 -398
- data/testing/rspec/spec/integration/models/example_integration_spec.rb +0 -753
- data/testing/rspec/spec/integration/models/feature_file_integration_spec.rb +0 -276
- data/testing/rspec/spec/integration/models/feature_integration_spec.rb +0 -655
- data/testing/rspec/spec/integration/models/model_integration_spec.rb +0 -15
- data/testing/rspec/spec/integration/models/outline_integration_spec.rb +0 -619
- data/testing/rspec/spec/integration/models/row_integration_spec.rb +0 -303
- data/testing/rspec/spec/integration/models/scenario_integration_spec.rb +0 -475
- data/testing/rspec/spec/integration/models/step_integration_spec.rb +0 -573
- data/testing/rspec/spec/integration/models/table_integration_spec.rb +0 -333
- data/testing/rspec/spec/integration/models/tag_integration_spec.rb +0 -271
- data/testing/rspec/spec/integration/nested_integration_spec.rb +0 -91
- data/testing/rspec/spec/integration/parsing_integration_spec.rb +0 -143
- data/testing/rspec/spec/integration/shared/models_integration_specs.rb +0 -18
- data/testing/rspec/spec/spec_helper.rb +0 -129
- data/testing/rspec/spec/unit/cuke_modeler_unit_spec.rb +0 -25
- data/testing/rspec/spec/unit/described_unit_spec.rb +0 -23
- data/testing/rspec/spec/unit/models/background_unit_spec.rb +0 -83
- data/testing/rspec/spec/unit/models/cell_unit_spec.rb +0 -68
- data/testing/rspec/spec/unit/models/comment_unit_spec.rb +0 -68
- data/testing/rspec/spec/unit/models/directory_unit_spec.rb +0 -127
- data/testing/rspec/spec/unit/models/doc_string_unit_spec.rb +0 -100
- data/testing/rspec/spec/unit/models/example_unit_spec.rb +0 -133
- data/testing/rspec/spec/unit/models/feature_file_unit_spec.rb +0 -125
- data/testing/rspec/spec/unit/models/feature_unit_spec.rb +0 -157
- data/testing/rspec/spec/unit/models/model_unit_spec.rb +0 -15
- data/testing/rspec/spec/unit/models/outline_unit_spec.rb +0 -117
- data/testing/rspec/spec/unit/models/row_unit_spec.rb +0 -68
- data/testing/rspec/spec/unit/models/scenario_unit_spec.rb +0 -86
- data/testing/rspec/spec/unit/models/step_unit_spec.rb +0 -109
- data/testing/rspec/spec/unit/models/table_unit_spec.rb +0 -77
- data/testing/rspec/spec/unit/models/tag_unit_spec.rb +0 -68
- data/testing/rspec/spec/unit/named_unit_spec.rb +0 -23
- data/testing/rspec/spec/unit/nested_unit_spec.rb +0 -43
- data/testing/rspec/spec/unit/parsed_unit_spec.rb +0 -27
- data/testing/rspec/spec/unit/parsing_unit_spec.rb +0 -54
- data/testing/rspec/spec/unit/shared/bare_bones_models_unit_specs.rb +0 -14
- data/testing/rspec/spec/unit/shared/containing_models_unit_specs.rb +0 -127
- data/testing/rspec/spec/unit/shared/described_models_unit_specs.rb +0 -38
- data/testing/rspec/spec/unit/shared/keyworded_models_unit_specs.rb +0 -58
- data/testing/rspec/spec/unit/shared/models_unit_specs.rb +0 -15
- data/testing/rspec/spec/unit/shared/named_models_unit_specs.rb +0 -39
- data/testing/rspec/spec/unit/shared/nested_models_unit_specs.rb +0 -51
- data/testing/rspec/spec/unit/shared/parsed_models_unit_specs.rb +0 -39
- data/testing/rspec/spec/unit/shared/prepopulated_models_unit_specs.rb +0 -18
- data/testing/rspec/spec/unit/shared/sourced_models_unit_specs.rb +0 -39
- data/testing/rspec/spec/unit/shared/stepped_models_unit_specs.rb +0 -46
- data/testing/rspec/spec/unit/shared/stringifiable_models_unit_specs.rb +0 -18
- data/testing/rspec/spec/unit/shared/tagged_models_unit_specs.rb +0 -72
- data/testing/rspec/spec/unit/sourceable_unit_spec.rb +0 -27
- data/testing/rspec/spec/unit/stepped_unit_spec.rb +0 -23
- data/testing/rspec/spec/unit/taggable_unit_spec.rb +0 -69
- data/testing/test_languages.json +0 -45
- data/todo.txt +0 -25
@@ -1,33 +0,0 @@
|
|
1
|
-
source 'https://rubygems.org'
|
2
|
-
|
3
|
-
gemspec :path => "../../"
|
4
|
-
gem "gherkin", "~> 2.0"
|
5
|
-
|
6
|
-
# cuke_modeler can play with pretty much any version of these but they all play differently with Ruby
|
7
|
-
|
8
|
-
if RUBY_VERSION =~ /^1\./
|
9
|
-
|
10
|
-
if RbConfig::CONFIG['host_os'].downcase =~ /mswin|msys|mingw32/
|
11
|
-
gem 'ffi', '< 1.9.15' # The 'ffi' gem, for Windows, requires Ruby 2.x on/after this version
|
12
|
-
end
|
13
|
-
|
14
|
-
gem 'unf_ext', '< 0.0.7.3' # Requires Ruby 2.x on/after this version
|
15
|
-
gem 'tins', '< 1.7' # The 'tins' gem requires Ruby 2.x on/after this version
|
16
|
-
gem 'json', '< 2.0' # The 'json' gem drops pre-Ruby 2.x support on/after this version
|
17
|
-
gem 'term-ansicolor', '< 1.4' # The 'term-ansicolor' gem requires Ruby 2.x on/after this version
|
18
|
-
|
19
|
-
if RUBY_VERSION =~ /^1\.8/
|
20
|
-
gem 'cucumber', '~> 1.0' # Ruby 1.8.x support dropped after this version
|
21
|
-
gem 'rainbow', '< 2.0' # Ruby 1.8.x support dropped after this version
|
22
|
-
gem 'rake', '< 11.0' # Ruby 1.8.x support dropped after this version
|
23
|
-
else
|
24
|
-
gem 'rake', '< 12.3.0' # Ruby 1.9.x support dropped after this version
|
25
|
-
end
|
26
|
-
|
27
|
-
elsif RUBY_VERSION =~ /^2\./
|
28
|
-
|
29
|
-
if RUBY_VERSION =~ /^2\.[23456789]/
|
30
|
-
gem 'test-unit'
|
31
|
-
end
|
32
|
-
|
33
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
source 'https://rubygems.org'
|
2
|
-
|
3
|
-
gemspec :path => "../../"
|
4
|
-
gem "gherkin", "~> 3.0"
|
5
|
-
|
6
|
-
# cuke_modeler can play with pretty much any version of these but they all play differently with Ruby
|
7
|
-
|
8
|
-
if RUBY_VERSION =~ /^1\./
|
9
|
-
|
10
|
-
if RbConfig::CONFIG['host_os'].downcase =~ /mswin|msys|mingw32/
|
11
|
-
gem 'ffi', '< 1.9.15' # The 'ffi' gem, for Windows, requires Ruby 2.x on/after this version
|
12
|
-
end
|
13
|
-
|
14
|
-
gem 'unf_ext', '< 0.0.7.3' # Requires Ruby 2.x on/after this version
|
15
|
-
gem 'tins', '< 1.7' # The 'tins' gem requires Ruby 2.x on/after this version
|
16
|
-
gem 'json', '< 2.0' # The 'json' gem drops pre-Ruby 2.x support on/after this version
|
17
|
-
gem 'term-ansicolor', '< 1.4' # The 'term-ansicolor' gem requires Ruby 2.x on/after this version
|
18
|
-
gem 'rake', '< 12.3.0' # Ruby 1.9.x support dropped after this version
|
19
|
-
|
20
|
-
elsif RUBY_VERSION =~ /^2\./
|
21
|
-
|
22
|
-
if RUBY_VERSION =~ /^2\.[23456789]/
|
23
|
-
gem 'test-unit'
|
24
|
-
end
|
25
|
-
|
26
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
source 'https://rubygems.org'
|
2
|
-
|
3
|
-
gemspec :path => "../../"
|
4
|
-
gem "gherkin", "~> 4.0"
|
5
|
-
|
6
|
-
# cuke_modeler can play with pretty much any version of these but they all play differently with Ruby
|
7
|
-
|
8
|
-
if RUBY_VERSION =~ /^1\./
|
9
|
-
|
10
|
-
if RbConfig::CONFIG['host_os'].downcase =~ /mswin|msys|mingw32/
|
11
|
-
gem 'ffi', '< 1.9.15' # The 'ffi' gem, for Windows, requires Ruby 2.x on/after this version
|
12
|
-
end
|
13
|
-
|
14
|
-
gem 'unf_ext', '< 0.0.7.3' # Requires Ruby 2.x on/after this version
|
15
|
-
gem 'tins', '< 1.7' # The 'tins' gem requires Ruby 2.x on/after this version
|
16
|
-
gem 'json', '< 2.0' # The 'json' gem drops pre-Ruby 2.x support on/after this version
|
17
|
-
gem 'term-ansicolor', '< 1.4' # The 'term-ansicolor' gem requires Ruby 2.x on/after this version
|
18
|
-
gem 'rake', '< 12.3.0' # Ruby 1.9.x support dropped after this version
|
19
|
-
gem 'cucumber', '< 3.0.0' # Ruby 1.9.x support dropped after this version
|
20
|
-
|
21
|
-
elsif RUBY_VERSION =~ /^2\./
|
22
|
-
|
23
|
-
if RUBY_VERSION =~ /^2\.[23456789]/
|
24
|
-
gem 'test-unit'
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
source 'https://rubygems.org'
|
2
|
-
|
3
|
-
gemspec :path => "../../"
|
4
|
-
gem "gherkin", "~> 5.0"
|
5
|
-
|
6
|
-
# cuke_modeler can play with pretty much any version of these but they all play differently with Ruby
|
7
|
-
|
8
|
-
if RUBY_VERSION =~ /^1\./
|
9
|
-
|
10
|
-
if RbConfig::CONFIG['host_os'].downcase =~ /mswin|msys|mingw32/
|
11
|
-
gem 'ffi', '< 1.9.15' # The 'ffi' gem, for Windows, requires Ruby 2.x on/after this version
|
12
|
-
end
|
13
|
-
|
14
|
-
gem 'unf_ext', '< 0.0.7.3' # Requires Ruby 2.x on/after this version
|
15
|
-
gem 'tins', '< 1.7' # The 'tins' gem requires Ruby 2.x on/after this version
|
16
|
-
gem 'json', '< 2.0' # The 'json' gem drops pre-Ruby 2.x support on/after this version
|
17
|
-
gem 'term-ansicolor', '< 1.4' # The 'term-ansicolor' gem requires Ruby 2.x on/after this version
|
18
|
-
gem 'rake', '< 12.3.0' # Ruby 1.9.x support dropped after this version
|
19
|
-
gem 'cucumber-core', '< 3.0.0' # Ruby 1.9.x support dropped after this version
|
20
|
-
|
21
|
-
elsif RUBY_VERSION =~ /^2\./
|
22
|
-
|
23
|
-
if RUBY_VERSION =~ /^2\.[23456789]/
|
24
|
-
gem 'test-unit'
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
data/testing/helper_methods.rb
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
module CukeModeler
|
2
|
-
module HelperMethods
|
3
|
-
|
4
|
-
def assert_bidirectional_equality(base_thing, compared_thing)
|
5
|
-
expect(base_thing).to eq(compared_thing)
|
6
|
-
expect(compared_thing).to eq(base_thing)
|
7
|
-
end
|
8
|
-
|
9
|
-
def assert_bidirectional_inequality(base_thing, compared_thing)
|
10
|
-
expect(base_thing).to_not eq(compared_thing)
|
11
|
-
expect(compared_thing).to_not eq(base_thing)
|
12
|
-
end
|
13
|
-
|
14
|
-
def gherkin?(*versions)
|
15
|
-
versions.include?(gherkin_major_version)
|
16
|
-
end
|
17
|
-
|
18
|
-
def gherkin_major_version
|
19
|
-
Gem.loaded_specs['gherkin'].version.version.match(/^(\d+)\./)[1].to_i
|
20
|
-
end
|
21
|
-
|
22
|
-
end
|
23
|
-
end
|
@@ -1,166 +0,0 @@
|
|
1
|
-
require "#{File.dirname(__FILE__)}/../../spec_helper"
|
2
|
-
|
3
|
-
|
4
|
-
describe 'Gherkin2Adapter, Integration', :if => gherkin?(2) 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', :if => gherkin?(3) 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
|