cucumber-messages 9.0.3 → 10.0.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: 304247d3eec1872fef25ec59a3736cf56c42c9f31f7599d644a6fb7b3130da4a
4
- data.tar.gz: 3ff363852d1e6786c0f8938cd5fd1a27f451e0c0d27fa1521de2ac2543b06ac3
3
+ metadata.gz: 3548d581ea0cbe4a0e13073a6e0886b98bea566f76414b1d7cb0c94a87e91321
4
+ data.tar.gz: 6eea11ad3537fc9cf1c89fb2721fa1df4426939ba08c84563d3853c556be6fc8
5
5
  SHA512:
6
- metadata.gz: 8c68b49a5ddebc229ed94f9762ef5a5d261025d987298f3c00b22a8484c6283b42a28df927fbd82078ad9cb693ea17d6f94b26cd4d5e9d8d8662a56e29db0191
7
- data.tar.gz: c5a059f32adab04dcdfa1ffa1c983a71ebcb913321dc09791d3a611dcffd9b41590dac95c25795cf06daeb4fa4f04dc19823c69750aef179b8741847781345fc
6
+ metadata.gz: 12fbf050c3ed3f149bf495432d3b886635dd5d63ec9e30b114c92b4c3437784601907ee5b2e14514c873f812cb88916bdfd7793b6c5a3c363bc979e441c2a731
7
+ data.tar.gz: 82d61564a8a814a36b68c3ec025e721f4ba9098a948258f29c55484c270fdb616905c3efb897e05837de699ae311c1ca43f57a99b07c738192cd4de187c8e2e0
@@ -108,7 +108,7 @@ module Cucumber
108
108
  class TestCaseFinished < ::Protobuf::Message; end
109
109
  class TestStepStarted < ::Protobuf::Message; end
110
110
  class TestStepFinished < ::Protobuf::Message; end
111
- class TestResult < ::Protobuf::Message
111
+ class TestStepResult < ::Protobuf::Message
112
112
  class Status < ::Protobuf::Enum
113
113
  define :UNKNOWN, 0
114
114
  define :PASSED, 1
@@ -133,6 +133,7 @@ module Cucumber
133
133
  class StepDefinition < ::Protobuf::Message; end
134
134
  class StepDefinitionPattern < ::Protobuf::Message; end
135
135
  class ParameterType < ::Protobuf::Message; end
136
+ class UndefinedParameterType < ::Protobuf::Message; end
136
137
  class CommandActionComplete < ::Protobuf::Message; end
137
138
  class CommandRunBeforeTestRunHooks < ::Protobuf::Message; end
138
139
  class CommandRunAfterTestRunHooks < ::Protobuf::Message; end
@@ -196,6 +197,7 @@ module Cucumber
196
197
  optional ::Cucumber::Messages::StepDefinition, :step_definition, 25
197
198
  optional ::Cucumber::Messages::Hook, :hook, 26
198
199
  optional ::Cucumber::Messages::ParameterType, :parameter_type, 27
200
+ optional ::Cucumber::Messages::UndefinedParameterType, :undefined_parameter_type, 28
199
201
  end
200
202
 
201
203
  class Location
@@ -441,14 +443,14 @@ module Cucumber
441
443
  end
442
444
 
443
445
  class TestStepFinished
444
- optional ::Cucumber::Messages::TestResult, :test_result, 1
446
+ optional ::Cucumber::Messages::TestStepResult, :test_step_result, 1
445
447
  optional ::Cucumber::Messages::Timestamp, :timestamp, 2
446
448
  optional :string, :test_step_id, 3
447
449
  optional :string, :test_case_started_id, 4
448
450
  end
449
451
 
450
- class TestResult
451
- optional ::Cucumber::Messages::TestResult::Status, :status, 1
452
+ class TestStepResult
453
+ optional ::Cucumber::Messages::TestStepResult::Status, :status, 1
452
454
  optional :string, :message, 2
453
455
  optional ::Cucumber::Messages::Duration, :duration, 3
454
456
  optional :bool, :will_be_retried, 4
@@ -457,6 +459,7 @@ module Cucumber
457
459
  class TestRunFinished
458
460
  optional :bool, :success, 1
459
461
  optional ::Cucumber::Messages::Timestamp, :timestamp, 2
462
+ optional :string, :message, 3
460
463
  end
461
464
 
462
465
  class CommandStart
@@ -527,9 +530,14 @@ module Cucumber
527
530
  optional :bool, :use_for_snippets, 4
528
531
  end
529
532
 
533
+ class UndefinedParameterType
534
+ optional :string, :name, 1
535
+ optional :string, :expression, 2
536
+ end
537
+
530
538
  class CommandActionComplete
531
539
  optional :string, :completed_id, 1
532
- optional ::Cucumber::Messages::TestResult, :test_result, 2
540
+ optional ::Cucumber::Messages::TestStepResult, :test_step_result, 2
533
541
  optional :string, :snippet, 3
534
542
  end
535
543
 
@@ -4,27 +4,8 @@ module Cucumber
4
4
  module Messages
5
5
  module WriteNdjson
6
6
  def write_ndjson_to(io)
7
- # https://github.com/ruby-protobuf/protobuf/pull/410
8
- json = self.to_json(lower_camel_case: true)
9
- ob = JSON.parse(json)
10
- remove_empties(ob)
11
- io.puts(JSON.generate(ob))
12
- end
13
-
14
- def remove_empties(ob)
15
- if Hash === ob
16
- ob.each do |key, value|
17
- if value == [] || value == '' || value == 0
18
- ob.delete(key)
19
- else
20
- remove_empties(value)
21
- end
22
- end
23
- elsif Array === ob
24
- ob.each do |value|
25
- remove_empties(value)
26
- end
27
- end
7
+ io.write(self.to_json(proto3: true))
8
+ io.write("\n")
28
9
  end
29
10
  end
30
11
  end
@@ -14,13 +14,13 @@ module Cucumber
14
14
 
15
15
  def seconds_to_duration(seconds_float)
16
16
  seconds, second_modulus = seconds_float.divmod(1)
17
- nanos = second_modulus / NANOSECONDS_PER_SECOND
17
+ nanos = second_modulus * NANOSECONDS_PER_SECOND
18
18
  Duration.new(seconds: seconds, nanos: nanos)
19
19
  end
20
20
 
21
21
  def duration_to_seconds(duration)
22
22
  seconds_part = duration.seconds
23
- nanos_part = duration.nanos / NANOSECONDS_PER_SECOND
23
+ nanos_part = duration.nanos.to_f / NANOSECONDS_PER_SECOND
24
24
  seconds_part + nanos_part
25
25
  end
26
26
  end
@@ -7,7 +7,7 @@ module Cucumber
7
7
  it "json-roundtrips messages with bytes fields" do
8
8
  a1 = Attachment.new(binary: [1,2,3,4].pack('C*'))
9
9
  expect(a1.binary.length).to eq(4)
10
- a2 = Attachment.new(JSON.parse(a1.to_json))
10
+ a2 = Attachment.new(JSON.parse(a1.to_json(proto3: true)))
11
11
  expect(a2).to(eq(a1))
12
12
  end
13
13
 
@@ -22,6 +22,38 @@ module Cucumber
22
22
  expect(json).to eq("{\"source\":{}}\n")
23
23
  end
24
24
 
25
+ it "omits empty number fields in output" do
26
+ io = StringIO.new
27
+ message = Envelope.new(
28
+ test_case_started: TestCaseStarted.new(
29
+ timestamp: Timestamp.new(
30
+ seconds: 0
31
+ )
32
+ )
33
+ )
34
+ message.write_ndjson_to(io)
35
+
36
+ io.rewind
37
+ json = io.read
38
+
39
+ expect(json).to eq('{"testCaseStarted":{"timestamp":{}}}' + "\n")
40
+ end
41
+
42
+ it "omits empty repeated fields in output" do
43
+ io = StringIO.new
44
+ message = Envelope.new(
45
+ parameter_type: ParameterType.new(
46
+ regular_expressions: []
47
+ )
48
+ )
49
+ message.write_ndjson_to(io)
50
+
51
+ io.rewind
52
+ json = io.read
53
+
54
+ expect(json).to eq('{"parameterType":{}}' + "\n")
55
+ end
56
+
25
57
  it "can be serialised over an ndjson stream" do
26
58
  outgoing_messages = [
27
59
  Envelope.new(source: Source.new(data: 'Feature: Hello')),
@@ -13,7 +13,6 @@ module Cucumber
13
13
  expect(time_again).to eq(time)
14
14
  end
15
15
 
16
-
17
16
  it 'converts to and from seconds duration' do
18
17
  duration_in_seconds = 1234
19
18
  duration = seconds_to_duration(duration_in_seconds)
@@ -21,6 +20,14 @@ module Cucumber
21
20
 
22
21
  expect(duration_in_seconds_again).to eq(duration_in_seconds)
23
22
  end
23
+
24
+ it 'converts to and from seconds duration (with decimal places)' do
25
+ duration_in_seconds = 3.000161
26
+ duration = seconds_to_duration(duration_in_seconds)
27
+ duration_in_seconds_again = duration_to_seconds(duration)
28
+
29
+ expect(duration_in_seconds_again).to be_within(0.000000001).of(duration_in_seconds)
30
+ end
24
31
  end
25
32
  end
26
33
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cucumber-messages
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.0.3
4
+ version: 10.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aslak Hellesøy
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-10 00:00:00.000000000 Z
11
+ date: 2020-02-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: protobuf-cucumber
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '3.10'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 3.10.4
22
+ version: 3.10.8
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: '3.10'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 3.10.4
32
+ version: 3.10.8
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: json
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -162,7 +162,7 @@ rubyforge_project:
162
162
  rubygems_version: 2.7.6.2
163
163
  signing_key:
164
164
  specification_version: 4
165
- summary: cucumber-messages-9.0.3
165
+ summary: cucumber-messages-10.0.1
166
166
  test_files:
167
167
  - spec/cucumber/messages/time_conversion_spec.rb
168
168
  - spec/cucumber/messages/ndjson_serialization_spec.rb