cucumber-compatibility-kit 9.1.0 → 9.1.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 59a65e57ebb944b7dc5f4c81b77980bb191a373784e2e4a52c99b9447cb14857
4
- data.tar.gz: 6b9089229c92764ec244e118ec84230239c870764d5735b377319a65252edccc
3
+ metadata.gz: afa658b4a280cda50327bf09b20bee6d72b6199c1009164e3a355dc2f853753b
4
+ data.tar.gz: bb15dfd4c0b129db899feab720eefd10d942e17367fdcfda95c7b67233ed4e34
5
5
  SHA512:
6
- metadata.gz: d641adbb794625b6be19984759b271ad958c7d0ceac00e0f59750aea28f643ddfff528d05c2e962e59d20cfeac8b022ac5b4d01463883baea9b6066a05eb9e61
7
- data.tar.gz: 82c50b779fea698732f8f1cf2748a91191e150e1615577f9d5110c38d6e4de4ec36d3057a856a9a2b95cbbe2d9151d827b778983d521e1796416d3d10f9006bd
6
+ metadata.gz: 78f2b8199eaa1e82c44f896043edcda109ebc3c348bac08ae4cf833e0068bfdc8e4ef860d171062fb96d05c71523c16bcad35cfb064dcb45a4c64ab141c4add6
7
+ data.tar.gz: 170a260c3abd88bd526f95adb3c9ee484842ae688297c2d88054aecf0887032d07f336b28c420e9c4a845d75604857ea1233a32a8ee4da26833f3632b15c96b6
data/lib/keys_checker.rb CHANGED
@@ -14,11 +14,15 @@ module CCK
14
14
 
15
15
  missing_keys = (expected_keys - found_keys)
16
16
 
17
- extra_keys = (found_keys - expected_keys)
17
+ extra_keys = (found_keys - expected_keys).reject { |key|
18
+ ENV['CI'] && found.class == Cucumber::Messages::Meta && key == :ci
19
+ }
18
20
 
19
21
  errors << "Found extra keys in message #{found.class.name}: #{extra_keys}" unless extra_keys.empty?
20
22
  errors << "Missing keys in message #{found.class.name}: #{missing_keys}" unless missing_keys.empty?
21
23
  errors
24
+ rescue StandardError => e
25
+ ["Unexpected error: #{e.message}"]
22
26
  end
23
27
  end
24
28
  end
@@ -62,6 +62,7 @@ module CCK
62
62
  return if found.is_a?(Cucumber::Messages::Pickle)
63
63
  return if found.is_a?(Cucumber::Messages::Timestamp) && expected.is_a?(Cucumber::Messages::Timestamp)
64
64
  return if found.is_a?(Cucumber::Messages::Duration) && expected.is_a?(Cucumber::Messages::Duration)
65
+ return if ENV['CI'] && found.is_a?(Cucumber::Messages::Ci) && expected.nil?
65
66
 
66
67
  @compared << found.class.name
67
68
  @all_errors << @validator.compare(found, expected)
@@ -73,5 +73,34 @@ describe CCK::KeysChecker do
73
73
  expect(subject.compare(default_set, default_not_set)).to be_empty
74
74
  end
75
75
  end
76
+
77
+ context 'when executed as part of a CI' do
78
+ before do
79
+ allow(ENV).to receive(:[]).with('CI').and_return(true)
80
+ end
81
+
82
+ it 'ignores actual CI related messages' do
83
+ found = Cucumber::Messages::Meta.new(
84
+ ci: Cucumber::Messages::Ci.new(name: 'Some CI')
85
+ )
86
+
87
+ expected = Cucumber::Messages::Meta.new
88
+
89
+ expect(subject.compare(found, expected)).to be_empty
90
+ end
91
+ end
92
+
93
+ context 'when an unexcpected error occurs' do
94
+ it 'does not raise error' do
95
+ expect {
96
+ subject.compare(nil, nil)
97
+ }.not_to raise_error
98
+ end
99
+
100
+ it 'returns the error' do
101
+ expect(subject.compare(nil, nil))
102
+ .to eq(['Unexpected error: wrong number of arguments (given 1, expected 0)'])
103
+ end
104
+ end
76
105
  end
77
106
  end
@@ -0,0 +1,26 @@
1
+ require 'rspec'
2
+ require 'cucumber/messages'
3
+ require_relative '../lib/messages_comparator'
4
+
5
+ describe CCK::MessagesComparator do
6
+ subject() { CCK::MessagesComparator }
7
+
8
+ context 'when executed as part of a CI' do
9
+ before do
10
+ allow(ENV).to receive(:[]).with('CI').and_return(true)
11
+ end
12
+
13
+ it 'ignores actual CI related messages' do
14
+ found_message_ci = Cucumber::Messages::Ci.new(name: 'Some CI')
15
+ found_message_meta = Cucumber::Messages::Meta.new(ci: found_message_ci)
16
+ found_message_envelope = Cucumber::Messages::Envelope.new(meta: found_message_meta)
17
+
18
+ expected_message_meta = Cucumber::Messages::Meta.new()
19
+ expected_message_envelope = Cucumber::Messages::Envelope.new(meta: expected_message_meta)
20
+
21
+ comparator = subject.new(CCK::KeysChecker, [found_message_envelope], [expected_message_envelope])
22
+
23
+ expect(comparator.errors).to be_empty
24
+ end
25
+ end
26
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cucumber-compatibility-kit
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.1.0
4
+ version: 9.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aurélien Reeves
@@ -130,6 +130,7 @@ files:
130
130
  - spec/capture_warnings.rb
131
131
  - spec/cucumber-compatibility-kit_spec.rb
132
132
  - spec/keys_checker_spec.rb
133
+ - spec/messages_comparator_spec.rb
133
134
  homepage: https://github.com/cucumber/common
134
135
  licenses:
135
136
  - MIT
@@ -158,8 +159,9 @@ requirements: []
158
159
  rubygems_version: 3.1.2
159
160
  signing_key:
160
161
  specification_version: 4
161
- summary: cucumber-compatibility-kit-9.1.0
162
+ summary: cucumber-compatibility-kit-9.1.1
162
163
  test_files:
163
164
  - spec/capture_warnings.rb
165
+ - spec/messages_comparator_spec.rb
164
166
  - spec/cucumber-compatibility-kit_spec.rb
165
167
  - spec/keys_checker_spec.rb