cucumber-ctrf 0.1.1 → 0.1.2

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: 489c429621dbc526e08e25bf73097cc9b84eac1f077c35843e41296150c9ce90
4
- data.tar.gz: c2206422492461f8c1bffe28aa9ce874db0e11f310b1d8ef72fd9ee543b5d8a9
3
+ metadata.gz: d1a78625b0862673be40e725f58a4496f43bd348ad44698445c4d55e83261c97
4
+ data.tar.gz: deb499d53afc3903aee01fcba49ce9660528c8ac28b004bed357eb1e52a5fca7
5
5
  SHA512:
6
- metadata.gz: adada0590df12484ba257bcf273294b576531a89cfe4eaab2f05dc3f958a87bc4ce41079b92e72cbe9dac47cff42cc11e5003695ebbf1092b9e751d222c43a1a
7
- data.tar.gz: 3bb097f38ce62a906e983cf46d1a5dc00b5972d4d96ada50eb175a0e46dd8e205ddfb59d36cf89346b1e34c564c87446e88cff7c2fd1fe1943dbc383249b9e14
6
+ metadata.gz: 378598143457383d7c8bdbeea598dd73df3feefded92fd464cf88d3a0c4b9299cbe9be016608a51bc1326d991a2890a6f1a5d6c6f71f270f7a3f2b77987f4066
7
+ data.tar.gz: 05f0d9f5fb4f813f9a8d47ba329eb585ca0384a0cc9a282c326059cb156101e67e1cf73ba19173f78eaa26449a076559f775fc2926dcf92ddac35de366a5b35a
@@ -9,16 +9,30 @@ module Ctrf
9
9
  include Cucumber::Formatter::Io
10
10
 
11
11
  def initialize(config)
12
+ # The Cucumber Formatter can get re-run many times (e.g. Knapsack)
13
+ # So, we need to make sure we load any existing file into the test object array, if one is provided.
14
+ if !io?(config.out_stream) && File.exist?(config.out_stream)
15
+ data = JSON.load_file(config.out_stream)
16
+ tests = deep_symbolize_keys(
17
+ data.dig('results', 'tests').to_h do |test|
18
+ [test.dig('extra', 'hash'), test]
19
+ end
20
+ )
21
+ run_start = data.dig('results', 'summary', 'start')
22
+ end
23
+
12
24
  @io = ensure_io(config.out_stream, config.error_stream)
13
25
  @ast_lookup = Cucumber::Formatter::AstLookup.new(config)
14
- @tests = {}
26
+
27
+ @tests = tests || {}
15
28
  begin
16
29
  @bc = Rails::ActiveSupport::BacktraceCleaner.new
17
30
  rescue StandardError
18
31
  @bc = nil
19
32
  end
20
33
 
21
- @run_start = Time.now.to_i
34
+ # Use the existing run_start if there is one
35
+ @run_start = run_start || Time.now.to_i
22
36
  config.on_event :test_case_started, &method(:on_test_case_started)
23
37
  config.on_event :test_case_finished, &method(:on_test_case_finished)
24
38
  config.on_event :test_step_started, &method(:on_test_step_started)
@@ -143,5 +157,30 @@ module Ctrf
143
157
  'other'
144
158
  end
145
159
  end
160
+
161
+ def deep_symbolize_keys(obj)
162
+ deep_transform_keys(obj) do |key|
163
+ key.to_sym
164
+ rescue StandardError
165
+ key
166
+ end
167
+ end
168
+
169
+ def deep_transform_keys(obj, &block)
170
+ _deep_transform_keys_in_object(obj, &block)
171
+ end
172
+
173
+ def _deep_transform_keys_in_object(object, &block)
174
+ case object
175
+ when Hash
176
+ object.each_with_object({}) do |(key, value), result|
177
+ result[yield(key)] = _deep_transform_keys_in_object(value, &block)
178
+ end
179
+ when Array
180
+ object.map { |e| _deep_transform_keys_in_object(e, &block) }
181
+ else
182
+ object
183
+ end
184
+ end
146
185
  end
147
186
  end
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cucumber-ctrf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Meneghello
8
8
  - DUSC
9
- autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2025-01-07 00:00:00.000000000 Z
11
+ date: 2025-01-20 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: cucumber
@@ -138,7 +137,6 @@ licenses:
138
137
  - MIT
139
138
  metadata:
140
139
  rubygems_mfa_required: 'true'
141
- post_install_message:
142
140
  rdoc_options: []
143
141
  require_paths:
144
142
  - lib
@@ -153,8 +151,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
153
151
  - !ruby/object:Gem::Version
154
152
  version: '0'
155
153
  requirements: []
156
- rubygems_version: 3.5.23
157
- signing_key:
154
+ rubygems_version: 3.6.2
158
155
  specification_version: 4
159
156
  summary: Cucumber formatter to output test results in CTRF (https://www.ctrf.io/)
160
157
  JSON format.