cucumber-messages 18.0.0 → 21.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: f3e7046d28c3ee8e712657f47cc35a26a45d9335a0a4d5ba5db57d2e0461bd54
4
- data.tar.gz: 7cc8e43af9515fb6d470fe4b5c684aab8bcefc92f6a7ceb97b3e09176fc931d2
3
+ metadata.gz: 8d775ee31d595dd6b7c67a8d6c98a84d18d6815c433b96aff25594c3cdcdd9f3
4
+ data.tar.gz: 79b5a45328fd019745e0d1fa5ce87c6df334956d5b9e8eb24a93e2ef7c0661a2
5
5
  SHA512:
6
- metadata.gz: 499aaa51732f20e6c1d2023d0864cea6eb9742f6357d3050ca5775a15d5c5e31a422a1f7f6c2dc64858f138bc11613e3efa97944a2e6f2cc98a153de5c1448c2
7
- data.tar.gz: bbfd4da336a7b63338bb852509065b442d4c9e264f5228a122f20648a4ed1e07a87529425d9aa48215ec19d72cbe66f298383abee66edccb2cf36b2a001335a1
6
+ metadata.gz: d1ec82690ee4b3ada7e575f5ff2dd0fb2923e95647fdb3c1960666daaac919252d4fb796a01814f1fee8250a1654d057e5ab220b9483b4d2cc398723cc648b80
7
+ data.tar.gz: 2843fa5bf6ecb13b8ec138076e563ee34bb619c2bf8fd02704357ecf37346ed38c4deb8b8fe78748d739a6dacb10dc1772356fe78a691020ac2733177cbea0d1
data/VERSION CHANGED
@@ -1 +1 @@
1
- 18.0.0
1
+ 21.0.1
@@ -1,7 +1,7 @@
1
1
  require 'cucumber/messages.dtos'
2
2
  require 'json'
3
3
 
4
- # The code was auto-generated by {this script}[https://github.com/cucumber/common/blob/main/messages/jsonschema/scripts/codegen.rb]
4
+ # The code was auto-generated by {this script}[https://github.com/cucumber/messages/blob/main/jsonschema/scripts/codegen.rb]
5
5
  #
6
6
 
7
7
  module Cucumber
@@ -88,6 +88,26 @@ module Cucumber
88
88
  end
89
89
  end
90
90
 
91
+ class Exception
92
+
93
+ ##
94
+ # Returns a new Exception from the given hash.
95
+ # If the hash keys are camelCased, they are properly assigned to the
96
+ # corresponding snake_cased attributes.
97
+ #
98
+ # Cucumber::Messages::Exception.from_h(some_hash) # => #<Cucumber::Messages::Exception:0x... ...>
99
+ #
100
+
101
+ def self.from_h(hash)
102
+ return nil if hash.nil?
103
+
104
+ self.new(
105
+ type: hash[:type],
106
+ message: hash[:message],
107
+ )
108
+ end
109
+ end
110
+
91
111
  class GherkinDocument
92
112
 
93
113
  ##
@@ -354,6 +374,7 @@ module Cucumber
354
374
  self.new(
355
375
  location: Location.from_h(hash[:location]),
356
376
  keyword: hash[:keyword],
377
+ keyword_type: hash[:keywordType],
357
378
  text: hash[:text],
358
379
  doc_string: DocString.from_h(hash[:docString]),
359
380
  data_table: DataTable.from_h(hash[:dataTable]),
@@ -659,6 +680,7 @@ module Cucumber
659
680
  argument: PickleStepArgument.from_h(hash[:argument]),
660
681
  ast_node_ids: hash[:astNodeIds],
661
682
  id: hash[:id],
683
+ type: hash[:type],
662
684
  text: hash[:text],
663
685
  )
664
686
  end
@@ -1029,6 +1051,7 @@ module Cucumber
1029
1051
  attempt: hash[:attempt],
1030
1052
  id: hash[:id],
1031
1053
  test_case_id: hash[:testCaseId],
1054
+ worker_id: hash[:workerId],
1032
1055
  timestamp: Timestamp.from_h(hash[:timestamp]),
1033
1056
  )
1034
1057
  end
@@ -1051,6 +1074,7 @@ module Cucumber
1051
1074
  message: hash[:message],
1052
1075
  success: hash[:success],
1053
1076
  timestamp: Timestamp.from_h(hash[:timestamp]),
1077
+ exception: Exception.from_h(hash[:exception]),
1054
1078
  )
1055
1079
  end
1056
1080
  end
@@ -1113,6 +1137,7 @@ module Cucumber
1113
1137
  duration: Duration.from_h(hash[:duration]),
1114
1138
  message: hash[:message],
1115
1139
  status: hash[:status],
1140
+ exception: Exception.from_h(hash[:exception]),
1116
1141
  )
1117
1142
  end
1118
1143
  end
@@ -1,6 +1,6 @@
1
1
  require 'cucumber/messages/message'
2
2
 
3
- # The code was auto-generated by {this script}[https://github.com/cucumber/common/blob/main/messages/jsonschema/scripts/codegen.rb]
3
+ # The code was auto-generated by {this script}[https://github.com/cucumber/messages/blob/main/jsonschema/scripts/codegen.rb]
4
4
  #
5
5
 
6
6
  module Cucumber
@@ -8,7 +8,7 @@ module Cucumber
8
8
 
9
9
 
10
10
  ##
11
- # Represents the Attachment message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
11
+ # Represents the Attachment message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
12
12
  #
13
13
  # //// Attachments (parse errors, execution errors, screenshots, links...)
14
14
  #
@@ -41,9 +41,9 @@ module Cucumber
41
41
  # Content encoding is *not* determined by the media type, but rather by the type
42
42
  # of the object being attached:
43
43
  #
44
- # - string => IDENTITY
45
- # - byte array => BASE64
46
- # - stream => BASE64
44
+ # - string: IDENTITY
45
+ # - byte array: BASE64
46
+ # - stream: BASE64
47
47
 
48
48
  attr_reader :content_encoding
49
49
 
@@ -107,7 +107,7 @@ module Cucumber
107
107
 
108
108
 
109
109
  ##
110
- # Represents the Duration message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
110
+ # Represents the Duration message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
111
111
  #
112
112
  # The structure is pretty close of the Timestamp one. For clarity, a second type
113
113
  # of message is used.
@@ -136,7 +136,7 @@ module Cucumber
136
136
 
137
137
 
138
138
  ##
139
- # Represents the Envelope message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
139
+ # Represents the Envelope message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
140
140
  #
141
141
  # When removing a field, replace it with reserved, rather than deleting the line.
142
142
  # When adding a field, add it to the end and increment the number by one.
@@ -224,7 +224,35 @@ module Cucumber
224
224
 
225
225
 
226
226
  ##
227
- # Represents the GherkinDocument message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
227
+ # Represents the Exception message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
228
+ #
229
+ # A simplified representation of an exception
230
+ #
231
+
232
+ class Exception < ::Cucumber::Messages::Message
233
+
234
+ ##
235
+ # The type of the exception that caused this result. E.g. "Error" or "org.opentest4j.AssertionFailedError"
236
+
237
+ attr_reader :type
238
+
239
+ ##
240
+ # The message of exception that caused this result. E.g. expected: "a" but was: "b"
241
+
242
+ attr_reader :message
243
+
244
+ def initialize(
245
+ type: '',
246
+ message: nil
247
+ )
248
+ @type = type
249
+ @message = message
250
+ end
251
+ end
252
+
253
+
254
+ ##
255
+ # Represents the GherkinDocument message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
228
256
  #
229
257
  # *
230
258
  # The [AST](https://en.wikipedia.org/wiki/Abstract_syntax_tree) of a Gherkin document.
@@ -264,7 +292,7 @@ module Cucumber
264
292
 
265
293
 
266
294
  ##
267
- # Represents the Background message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
295
+ # Represents the Background message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
268
296
  #
269
297
 
270
298
  #
@@ -305,7 +333,7 @@ module Cucumber
305
333
 
306
334
 
307
335
  ##
308
- # Represents the Comment message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
336
+ # Represents the Comment message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
309
337
  #
310
338
  # *
311
339
  # A comment in a Gherkin document
@@ -334,7 +362,7 @@ module Cucumber
334
362
 
335
363
 
336
364
  ##
337
- # Represents the DataTable message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
365
+ # Represents the DataTable message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
338
366
  #
339
367
 
340
368
  #
@@ -356,7 +384,7 @@ module Cucumber
356
384
 
357
385
 
358
386
  ##
359
- # Represents the DocString message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
387
+ # Represents the DocString message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
360
388
  #
361
389
 
362
390
  #
@@ -386,7 +414,7 @@ module Cucumber
386
414
 
387
415
 
388
416
  ##
389
- # Represents the Examples message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
417
+ # Represents the Examples message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
390
418
  #
391
419
 
392
420
  #
@@ -435,7 +463,7 @@ module Cucumber
435
463
 
436
464
 
437
465
  ##
438
- # Represents the Feature message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
466
+ # Represents the Feature message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
439
467
  #
440
468
 
441
469
  #
@@ -498,7 +526,7 @@ module Cucumber
498
526
 
499
527
 
500
528
  ##
501
- # Represents the FeatureChild message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
529
+ # Represents the FeatureChild message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
502
530
  #
503
531
  # *
504
532
  # A child node of a `Feature` node
@@ -525,7 +553,7 @@ module Cucumber
525
553
 
526
554
 
527
555
  ##
528
- # Represents the Rule message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
556
+ # Represents the Rule message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
529
557
  #
530
558
 
531
559
  #
@@ -573,7 +601,7 @@ module Cucumber
573
601
 
574
602
 
575
603
  ##
576
- # Represents the RuleChild message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
604
+ # Represents the RuleChild message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
577
605
  #
578
606
  # *
579
607
  # A child node of a `Rule` node
@@ -596,7 +624,7 @@ module Cucumber
596
624
 
597
625
 
598
626
  ##
599
- # Represents the Scenario message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
627
+ # Represents the Scenario message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
600
628
  #
601
629
 
602
630
  #
@@ -645,7 +673,7 @@ module Cucumber
645
673
 
646
674
 
647
675
  ##
648
- # Represents the Step message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
676
+ # Represents the Step message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
649
677
  #
650
678
  # A step
651
679
  #
@@ -657,8 +685,16 @@ module Cucumber
657
685
 
658
686
  attr_reader :location
659
687
 
688
+ ##
689
+ # The actual keyword as it appeared in the source.
690
+
660
691
  attr_reader :keyword
661
692
 
693
+ ##
694
+ # The test phase signalled by the keyword: Context definition (Given), Action performance (When), Outcome assertion (Then). Other keywords signal Continuation (And and But) from a prior keyword. Please note that all translations which a dialect maps to multiple keywords (`*` is in this category for all dialects), map to 'Unknown'.
695
+
696
+ attr_reader :keyword_type
697
+
662
698
  attr_reader :text
663
699
 
664
700
  attr_reader :doc_string
@@ -673,6 +709,7 @@ module Cucumber
673
709
  def initialize(
674
710
  location: Location.new,
675
711
  keyword: '',
712
+ keyword_type: nil,
676
713
  text: '',
677
714
  doc_string: nil,
678
715
  data_table: nil,
@@ -680,6 +717,7 @@ module Cucumber
680
717
  )
681
718
  @location = location
682
719
  @keyword = keyword
720
+ @keyword_type = keyword_type
683
721
  @text = text
684
722
  @doc_string = doc_string
685
723
  @data_table = data_table
@@ -689,7 +727,7 @@ module Cucumber
689
727
 
690
728
 
691
729
  ##
692
- # Represents the TableCell message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
730
+ # Represents the TableCell message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
693
731
  #
694
732
  # A cell in a `TableRow`
695
733
  #
@@ -717,7 +755,7 @@ module Cucumber
717
755
 
718
756
 
719
757
  ##
720
- # Represents the TableRow message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
758
+ # Represents the TableRow message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
721
759
  #
722
760
  # A row in a table
723
761
  #
@@ -749,7 +787,7 @@ module Cucumber
749
787
 
750
788
 
751
789
  ##
752
- # Represents the Tag message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
790
+ # Represents the Tag message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
753
791
  #
754
792
  # *
755
793
  # A tag
@@ -785,7 +823,7 @@ module Cucumber
785
823
 
786
824
 
787
825
  ##
788
- # Represents the Hook message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
826
+ # Represents the Hook message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
789
827
  #
790
828
 
791
829
  #
@@ -815,7 +853,7 @@ module Cucumber
815
853
 
816
854
 
817
855
  ##
818
- # Represents the Location message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
856
+ # Represents the Location message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
819
857
  #
820
858
  # *
821
859
  # Points to a line and a column in a text file
@@ -838,7 +876,7 @@ module Cucumber
838
876
 
839
877
 
840
878
  ##
841
- # Represents the Meta message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
879
+ # Represents the Meta message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
842
880
  #
843
881
  # *
844
882
  # This message contains meta information about the environment. Consumers can use
@@ -894,7 +932,7 @@ module Cucumber
894
932
 
895
933
 
896
934
  ##
897
- # Represents the Ci message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
935
+ # Represents the Ci message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
898
936
  #
899
937
  # CI environment
900
938
  #
@@ -933,7 +971,7 @@ module Cucumber
933
971
 
934
972
 
935
973
  ##
936
- # Represents the Git message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
974
+ # Represents the Git message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
937
975
  #
938
976
  # Information about Git, provided by the Build/CI server as environment
939
977
  # variables.
@@ -964,7 +1002,7 @@ module Cucumber
964
1002
 
965
1003
 
966
1004
  ##
967
- # Represents the Product message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
1005
+ # Represents the Product message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
968
1006
  #
969
1007
  # Used to describe various properties of Meta
970
1008
  #
@@ -992,7 +1030,7 @@ module Cucumber
992
1030
 
993
1031
 
994
1032
  ##
995
- # Represents the ParameterType message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
1033
+ # Represents the ParameterType message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
996
1034
  #
997
1035
 
998
1036
  #
@@ -1029,7 +1067,7 @@ module Cucumber
1029
1067
 
1030
1068
 
1031
1069
  ##
1032
- # Represents the ParseError message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
1070
+ # Represents the ParseError message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
1033
1071
  #
1034
1072
 
1035
1073
  #
@@ -1051,7 +1089,7 @@ module Cucumber
1051
1089
 
1052
1090
 
1053
1091
  ##
1054
- # Represents the Pickle message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
1092
+ # Represents the Pickle message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
1055
1093
  #
1056
1094
  # //// Pickles
1057
1095
  #
@@ -1132,7 +1170,7 @@ module Cucumber
1132
1170
 
1133
1171
 
1134
1172
  ##
1135
- # Represents the PickleDocString message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
1173
+ # Represents the PickleDocString message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
1136
1174
  #
1137
1175
 
1138
1176
  #
@@ -1154,7 +1192,7 @@ module Cucumber
1154
1192
 
1155
1193
 
1156
1194
  ##
1157
- # Represents the PickleStep message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
1195
+ # Represents the PickleStep message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
1158
1196
  #
1159
1197
  # *
1160
1198
  # An executable step
@@ -1175,24 +1213,33 @@ module Cucumber
1175
1213
 
1176
1214
  attr_reader :id
1177
1215
 
1216
+ ##
1217
+ # The context in which the step was specified: context (Given), action (When) or outcome (Then).
1218
+ #
1219
+ # Note that the keywords `But` and `And` inherit their meaning from prior steps and the `*` 'keyword' doesn't have specific meaning (hence Unknown)
1220
+
1221
+ attr_reader :type
1222
+
1178
1223
  attr_reader :text
1179
1224
 
1180
1225
  def initialize(
1181
1226
  argument: nil,
1182
1227
  ast_node_ids: [],
1183
1228
  id: '',
1229
+ type: nil,
1184
1230
  text: ''
1185
1231
  )
1186
1232
  @argument = argument
1187
1233
  @ast_node_ids = ast_node_ids
1188
1234
  @id = id
1235
+ @type = type
1189
1236
  @text = text
1190
1237
  end
1191
1238
  end
1192
1239
 
1193
1240
 
1194
1241
  ##
1195
- # Represents the PickleStepArgument message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
1242
+ # Represents the PickleStepArgument message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
1196
1243
  #
1197
1244
  # An optional argument
1198
1245
  #
@@ -1214,7 +1261,7 @@ module Cucumber
1214
1261
 
1215
1262
 
1216
1263
  ##
1217
- # Represents the PickleTable message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
1264
+ # Represents the PickleTable message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
1218
1265
  #
1219
1266
 
1220
1267
  #
@@ -1232,7 +1279,7 @@ module Cucumber
1232
1279
 
1233
1280
 
1234
1281
  ##
1235
- # Represents the PickleTableCell message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
1282
+ # Represents the PickleTableCell message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
1236
1283
  #
1237
1284
 
1238
1285
  #
@@ -1250,7 +1297,7 @@ module Cucumber
1250
1297
 
1251
1298
 
1252
1299
  ##
1253
- # Represents the PickleTableRow message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
1300
+ # Represents the PickleTableRow message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
1254
1301
  #
1255
1302
 
1256
1303
  #
@@ -1268,7 +1315,7 @@ module Cucumber
1268
1315
 
1269
1316
 
1270
1317
  ##
1271
- # Represents the PickleTag message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
1318
+ # Represents the PickleTag message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
1272
1319
  #
1273
1320
  # *
1274
1321
  # A tag
@@ -1294,7 +1341,7 @@ module Cucumber
1294
1341
 
1295
1342
 
1296
1343
  ##
1297
- # Represents the Source message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
1344
+ # Represents the Source message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
1298
1345
  #
1299
1346
  # //// Source
1300
1347
  #
@@ -1335,7 +1382,7 @@ module Cucumber
1335
1382
 
1336
1383
 
1337
1384
  ##
1338
- # Represents the SourceReference message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
1385
+ # Represents the SourceReference message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
1339
1386
  #
1340
1387
  # *
1341
1388
  # Points to a [Source](#io.cucumber.messages.Source) identified by `uri` and a
@@ -1367,7 +1414,7 @@ module Cucumber
1367
1414
 
1368
1415
 
1369
1416
  ##
1370
- # Represents the JavaMethod message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
1417
+ # Represents the JavaMethod message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
1371
1418
  #
1372
1419
 
1373
1420
  #
@@ -1393,7 +1440,7 @@ module Cucumber
1393
1440
 
1394
1441
 
1395
1442
  ##
1396
- # Represents the JavaStackTraceElement message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
1443
+ # Represents the JavaStackTraceElement message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
1397
1444
  #
1398
1445
 
1399
1446
  #
@@ -1419,7 +1466,7 @@ module Cucumber
1419
1466
 
1420
1467
 
1421
1468
  ##
1422
- # Represents the StepDefinition message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
1469
+ # Represents the StepDefinition message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
1423
1470
  #
1424
1471
 
1425
1472
  #
@@ -1445,7 +1492,7 @@ module Cucumber
1445
1492
 
1446
1493
 
1447
1494
  ##
1448
- # Represents the StepDefinitionPattern message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
1495
+ # Represents the StepDefinitionPattern message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
1449
1496
  #
1450
1497
 
1451
1498
  #
@@ -1467,7 +1514,7 @@ module Cucumber
1467
1514
 
1468
1515
 
1469
1516
  ##
1470
- # Represents the TestCase message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
1517
+ # Represents the TestCase message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
1471
1518
  #
1472
1519
  # //// TestCases
1473
1520
  #
@@ -1499,7 +1546,7 @@ module Cucumber
1499
1546
 
1500
1547
 
1501
1548
  ##
1502
- # Represents the Group message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
1549
+ # Represents the Group message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
1503
1550
  #
1504
1551
 
1505
1552
  #
@@ -1525,7 +1572,7 @@ module Cucumber
1525
1572
 
1526
1573
 
1527
1574
  ##
1528
- # Represents the StepMatchArgument message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
1575
+ # Represents the StepMatchArgument message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
1529
1576
  #
1530
1577
  # *
1531
1578
  # Represents a single argument extracted from a step match and passed to a step definition.
@@ -1558,7 +1605,7 @@ module Cucumber
1558
1605
 
1559
1606
 
1560
1607
  ##
1561
- # Represents the StepMatchArgumentsList message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
1608
+ # Represents the StepMatchArgumentsList message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
1562
1609
  #
1563
1610
 
1564
1611
  #
@@ -1576,7 +1623,7 @@ module Cucumber
1576
1623
 
1577
1624
 
1578
1625
  ##
1579
- # Represents the TestStep message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
1626
+ # Represents the TestStep message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
1580
1627
  #
1581
1628
  # *
1582
1629
  # A `TestStep` is derived from either a `PickleStep`
@@ -1626,7 +1673,7 @@ module Cucumber
1626
1673
 
1627
1674
 
1628
1675
  ##
1629
- # Represents the TestCaseFinished message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
1676
+ # Represents the TestCaseFinished message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
1630
1677
  #
1631
1678
 
1632
1679
  #
@@ -1652,7 +1699,7 @@ module Cucumber
1652
1699
 
1653
1700
 
1654
1701
  ##
1655
- # Represents the TestCaseStarted message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
1702
+ # Represents the TestCaseStarted message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
1656
1703
  #
1657
1704
 
1658
1705
  #
@@ -1675,24 +1722,31 @@ module Cucumber
1675
1722
 
1676
1723
  attr_reader :test_case_id
1677
1724
 
1725
+ ##
1726
+ # An identifier for the worker process running this test case, if test cases are being run in parallel. The identifier will be unique per worker, but no particular format is defined - it could be an index, uuid, machine name etc - and as such should be assumed that it's not human readable.
1727
+
1728
+ attr_reader :worker_id
1729
+
1678
1730
  attr_reader :timestamp
1679
1731
 
1680
1732
  def initialize(
1681
1733
  attempt: 0,
1682
1734
  id: '',
1683
1735
  test_case_id: '',
1736
+ worker_id: nil,
1684
1737
  timestamp: Timestamp.new
1685
1738
  )
1686
1739
  @attempt = attempt
1687
1740
  @id = id
1688
1741
  @test_case_id = test_case_id
1742
+ @worker_id = worker_id
1689
1743
  @timestamp = timestamp
1690
1744
  end
1691
1745
  end
1692
1746
 
1693
1747
 
1694
1748
  ##
1695
- # Represents the TestRunFinished message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
1749
+ # Represents the TestRunFinished message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
1696
1750
  #
1697
1751
 
1698
1752
  #
@@ -1700,16 +1754,12 @@ module Cucumber
1700
1754
  class TestRunFinished < ::Cucumber::Messages::Message
1701
1755
 
1702
1756
  ##
1703
- # Error message. Can be a stack trace from a failed `BeforeAll` or `AfterAll`.
1704
- # If there are undefined parameter types, the message is simply
1705
- # "The following parameter type(s() are not defined: xxx, yyy".
1706
- # The independent `UndefinedParameterType` messages can be used to generate
1707
- # snippets for those parameter types.
1757
+ # An informative message about the test run. Typically additional information about failure, but not necessarily.
1708
1758
 
1709
1759
  attr_reader :message
1710
1760
 
1711
1761
  ##
1712
- # success = StrictModeEnabled ? (failed_count == 0 && ambiguous_count == 0 && undefined_count == 0 && pending_count == 0) : (failed_count == 0 && ambiguous_count == 0)
1762
+ # A test run is successful if all steps are either passed or skipped, all before/after hooks passed and no other exceptions where thrown.
1713
1763
 
1714
1764
  attr_reader :success
1715
1765
 
@@ -1718,20 +1768,27 @@ module Cucumber
1718
1768
 
1719
1769
  attr_reader :timestamp
1720
1770
 
1771
+ ##
1772
+ # Any exception thrown during the test run, if any. Does not include exceptions thrown while executing steps.
1773
+
1774
+ attr_reader :exception
1775
+
1721
1776
  def initialize(
1722
1777
  message: nil,
1723
1778
  success: false,
1724
- timestamp: Timestamp.new
1779
+ timestamp: Timestamp.new,
1780
+ exception: nil
1725
1781
  )
1726
1782
  @message = message
1727
1783
  @success = success
1728
1784
  @timestamp = timestamp
1785
+ @exception = exception
1729
1786
  end
1730
1787
  end
1731
1788
 
1732
1789
 
1733
1790
  ##
1734
- # Represents the TestRunStarted message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
1791
+ # Represents the TestRunStarted message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
1735
1792
  #
1736
1793
 
1737
1794
  #
@@ -1749,7 +1806,7 @@ module Cucumber
1749
1806
 
1750
1807
 
1751
1808
  ##
1752
- # Represents the TestStepFinished message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
1809
+ # Represents the TestStepFinished message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
1753
1810
  #
1754
1811
 
1755
1812
  #
@@ -1779,7 +1836,7 @@ module Cucumber
1779
1836
 
1780
1837
 
1781
1838
  ##
1782
- # Represents the TestStepResult message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
1839
+ # Represents the TestStepResult message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
1783
1840
  #
1784
1841
 
1785
1842
  #
@@ -1788,24 +1845,34 @@ module Cucumber
1788
1845
 
1789
1846
  attr_reader :duration
1790
1847
 
1848
+ ##
1849
+ # An arbitrary bit of information that explains this result. This can be a stack trace of anything else.
1850
+
1791
1851
  attr_reader :message
1792
1852
 
1793
1853
  attr_reader :status
1794
1854
 
1855
+ ##
1856
+ # Exception thrown while executing this step, if any.
1857
+
1858
+ attr_reader :exception
1859
+
1795
1860
  def initialize(
1796
1861
  duration: Duration.new,
1797
1862
  message: nil,
1798
- status: TestStepResultStatus::UNKNOWN
1863
+ status: TestStepResultStatus::UNKNOWN,
1864
+ exception: nil
1799
1865
  )
1800
1866
  @duration = duration
1801
1867
  @message = message
1802
1868
  @status = status
1869
+ @exception = exception
1803
1870
  end
1804
1871
  end
1805
1872
 
1806
1873
 
1807
1874
  ##
1808
- # Represents the TestStepStarted message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
1875
+ # Represents the TestStepStarted message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
1809
1876
  #
1810
1877
 
1811
1878
  #
@@ -1831,7 +1898,7 @@ module Cucumber
1831
1898
 
1832
1899
 
1833
1900
  ##
1834
- # Represents the Timestamp message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
1901
+ # Represents the Timestamp message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
1835
1902
  #
1836
1903
 
1837
1904
  #
@@ -1864,7 +1931,7 @@ module Cucumber
1864
1931
 
1865
1932
 
1866
1933
  ##
1867
- # Represents the UndefinedParameterType message in Cucumber's {message protocol}[https://github.com/cucumber/common/tree/main/messages#readme].
1934
+ # Represents the UndefinedParameterType message in Cucumber's {message protocol}[https://github.com/cucumber/messages].
1868
1935
  #
1869
1936
 
1870
1937
  #
@@ -1892,6 +1959,13 @@ class Cucumber::Messages::AttachmentContentEncoding
1892
1959
  BASE64 = 'BASE64'
1893
1960
  end
1894
1961
 
1962
+ class Cucumber::Messages::PickleStepType
1963
+ UNKNOWN = 'Unknown'
1964
+ CONTEXT = 'Context'
1965
+ ACTION = 'Action'
1966
+ OUTCOME = 'Outcome'
1967
+ end
1968
+
1895
1969
  class Cucumber::Messages::SourceMediaType
1896
1970
  TEXT_X_CUCUMBER_GHERKIN_PLAIN = 'text/x.cucumber.gherkin+plain'
1897
1971
  TEXT_X_CUCUMBER_GHERKIN_MARKDOWN = 'text/x.cucumber.gherkin+markdown'
@@ -1902,6 +1976,14 @@ class Cucumber::Messages::StepDefinitionPatternType
1902
1976
  REGULAR_EXPRESSION = 'REGULAR_EXPRESSION'
1903
1977
  end
1904
1978
 
1979
+ class Cucumber::Messages::StepKeywordType
1980
+ UNKNOWN = 'Unknown'
1981
+ CONTEXT = 'Context'
1982
+ ACTION = 'Action'
1983
+ OUTCOME = 'Outcome'
1984
+ CONJUNCTION = 'Conjunction'
1985
+ end
1986
+
1905
1987
  class Cucumber::Messages::TestStepResultStatus
1906
1988
  UNKNOWN = 'UNKNOWN'
1907
1989
  PASSED = 'PASSED'
@@ -1,11 +1,17 @@
1
1
  require 'json'
2
2
  require 'cucumber/messages'
3
+ require 'cucumber-compatibility-kit'
3
4
 
4
5
  module Cucumber
5
6
  module Messages
6
7
  describe 'messages acdeptance tests' do
7
- # TODO: Remove '/minimal' from the glob
8
- Dir["#{File.dirname(__FILE__)}/../../../../../compatibility-kit/javascript/features/**/*.ndjson"].each do |ndjson_file|
8
+ ndjson_files = Dir["#{Cucumber::CompatibilityKit::examples_path}/**/*.ndjson"]
9
+
10
+ it 'must have ndjson_files as reference messages' do
11
+ expect(ndjson_files).not_to be_empty
12
+ end
13
+
14
+ ndjson_files.each do |ndjson_file|
9
15
  it "deserialises and serialises messages in #{ndjson_file}" do
10
16
  File.open(ndjson_file, 'r:utf-8') do |io|
11
17
  io.each_line do |json|
metadata CHANGED
@@ -1,15 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cucumber-messages
3
3
  version: !ruby/object:Gem::Version
4
- version: 18.0.0
4
+ version: 21.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: 2022-03-24 00:00:00.000000000 Z
11
+ date: 2022-12-17 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: cucumber-compatibility-kit
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '11.0'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 11.0.0
23
+ type: :development
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '11.0'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 11.0.0
13
33
  - !ruby/object:Gem::Dependency
14
34
  name: rake
15
35
  requirement: !ruby/object:Gem::Requirement
@@ -83,11 +103,11 @@ homepage: https://github.com/cucumber/messages-ruby#readme
83
103
  licenses:
84
104
  - MIT
85
105
  metadata:
86
- bug_tracker_uri: https://github.com/cucumber/cucumber/issues
87
- changelog_uri: https://github.com/cucumber/common/blob/main/messages/CHANGELOG.md
88
- documentation_uri: https://www.rubydoc.info/github/cucumber/messages-ruby
106
+ bug_tracker_uri: https://github.com/cucumber/messages/issues
107
+ changelog_uri: https://github.com/cucumber/messages/blob/main/CHANGELOG.md
108
+ documentation_uri: https://www.rubydoc.info/github/cucumber/messages
89
109
  mailing_list_uri: https://groups.google.com/forum/#!forum/cukes
90
- source_code_uri: https://github.com/cucumber/common/blob/main/messages/ruby
110
+ source_code_uri: https://github.com/cucumber/messages
91
111
  post_install_message:
92
112
  rdoc_options:
93
113
  - "--charset=UTF-8"
@@ -104,18 +124,18 @@ required_rubygems_version: !ruby/object:Gem::Requirement
104
124
  - !ruby/object:Gem::Version
105
125
  version: '0'
106
126
  requirements: []
107
- rubygems_version: 3.1.2
127
+ rubygems_version: 3.2.22
108
128
  signing_key:
109
129
  specification_version: 4
110
- summary: cucumber-messages-18.0.0
130
+ summary: cucumber-messages-21.0.1
111
131
  test_files:
112
132
  - spec/capture_warnings.rb
113
133
  - spec/cucumber/messages/acceptance_spec.rb
114
- - spec/cucumber/messages/ndjson_serialization_spec.rb
134
+ - spec/cucumber/messages/id_generator_spec.rb
115
135
  - spec/cucumber/messages/message/deserialization_spec.rb
116
136
  - spec/cucumber/messages/message/dummy_messages.rb
117
- - spec/cucumber/messages/message/utils_spec.rb
118
137
  - spec/cucumber/messages/message/serialization_spec.rb
138
+ - spec/cucumber/messages/message/utils_spec.rb
139
+ - spec/cucumber/messages/ndjson_serialization_spec.rb
119
140
  - spec/cucumber/messages/time_conversion_spec.rb
120
- - spec/cucumber/messages/id_generator_spec.rb
121
141
  - spec/cucumber/messages/version_spec.rb