|
6 | 6 |
|
7 | 7 | describe CCK::KeysChecker do
|
8 | 8 | describe '#compare' do
|
9 |
| - let(:expected_values) { Cucumber::Messages::Attachment.new(url: 'https://foo.com', file_name: 'file.extension') } |
10 |
| - let(:erroneous_values) { Cucumber::Messages::Attachment.new(source: '1', test_step_id: '123') } |
11 |
| - let(:wrong_values) { Cucumber::Messages::Attachment.new(url: 'https://otherfoo.com', file_name: 'file.other') } |
| 9 | + let(:expected_kvps) { Cucumber::Messages::Attachment.new(url: 'https://foo.com', file_name: 'file.extension', test_step_id: 123_456) } |
| 10 | + let(:missing_kvps) { Cucumber::Messages::Attachment.new(url: 'https://foo.com') } |
| 11 | + let(:extra_kvps) { Cucumber::Messages::Attachment.new(url: 'https://foo.com', file_name: 'file.extension', test_step_id: 123_456, source: '1') } |
| 12 | + let(:missing_and_extra_kvps) { Cucumber::Messages::Attachment.new(file_name: 'file.extension', test_step_id: 123_456, test_run_started_id: 123_456) } |
| 13 | + let(:wrong_values) { Cucumber::Messages::Attachment.new(url: 'https://otherfoo.com', file_name: 'file.other', test_step_id: 456_789) } |
12 | 14 |
|
13 | 15 | it 'finds missing keys' do
|
14 |
| - expect(described_class.compare(erroneous_values, expected_values)).to include( |
15 |
| - 'Missing keys in message Cucumber::Messages::Attachment: [:file_name, :url]' |
| 16 | + expect(described_class.compare(missing_kvps, expected_kvps)).to eq( |
| 17 | + 'Missing keys in message Cucumber::Messages::Attachment: [:file_name, :test_step_id]' |
16 | 18 | )
|
17 | 19 | end
|
18 | 20 |
|
19 | 21 | it 'finds extra keys' do
|
20 |
| - expect(described_class.compare(erroneous_values, expected_values)).to include( |
21 |
| - 'Detected extra keys in message Cucumber::Messages::Attachment: [:source, :test_step_id]' |
| 22 | + expect(described_class.compare(extra_kvps, expected_kvps)).to eq( |
| 23 | + 'Detected extra keys in message Cucumber::Messages::Attachment: [:source]' |
22 | 24 | )
|
23 | 25 | end
|
24 | 26 |
|
25 |
| - it 'finds extra and missing keys' do |
26 |
| - expect(described_class.compare(erroneous_values, expected_values)).to contain_exactly( |
27 |
| - 'Missing keys in message Cucumber::Messages::Attachment: [:file_name, :url]', |
28 |
| - 'Detected extra keys in message Cucumber::Messages::Attachment: [:source, :test_step_id]' |
| 27 | + it 'finds the extra keys first' do |
| 28 | + expect(described_class.compare(missing_and_extra_kvps, expected_kvps)).to eq( |
| 29 | + 'Detected extra keys in message Cucumber::Messages::Attachment: [:test_run_started_id]' |
29 | 30 | )
|
30 | 31 | end
|
31 | 32 |
|
32 | 33 | it 'does not care about the values' do
|
33 |
| - expect(described_class.compare(expected_values, wrong_values)).to be_empty |
| 34 | + expect(described_class.compare(expected_kvps, wrong_values)).to be_nil |
34 | 35 | end
|
35 | 36 |
|
36 | 37 | context 'when default values are omitted' do
|
37 | 38 | let(:default_set) { Cucumber::Messages::Duration.new(seconds: 0, nanos: 12) }
|
38 | 39 | let(:default_not_set) { Cucumber::Messages::Duration.new(nanos: 12) }
|
39 | 40 |
|
40 | 41 | it 'does not raise an exception' do
|
41 |
| - expect(described_class.compare(default_set, default_not_set)).to be_empty |
| 42 | + expect(described_class.compare(default_set, default_not_set)).to be_nil |
42 | 43 | end
|
43 | 44 | end
|
44 | 45 |
|
|
49 | 50 | detected = Cucumber::Messages::Meta.new(ci: Cucumber::Messages::Ci.new(name: 'Some CI'))
|
50 | 51 | expected = Cucumber::Messages::Meta.new
|
51 | 52 |
|
52 |
| - expect(described_class.compare(detected, expected)).to be_empty |
| 53 | + expect(described_class.compare(detected, expected)).to be_nil |
53 | 54 | end
|
54 | 55 | end
|
55 | 56 |
|
|
0 commit comments