rspec-abq 1.0.7 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5b0646cb04737a465bc4d6e970f646467c0c99216dbfea158be227a310d1788f
4
- data.tar.gz: 23433a92ba1b15d82c4466f1deea8702ea5757aa7c01c73e84e85468430b9227
3
+ metadata.gz: 29210d070dba423ba2bb9aad82deb1df9e4a4fb01e70bec05b1d728d20e29d5e
4
+ data.tar.gz: 1771fe5b152192dd256b29cc412526fc275c381c1c697cec4a51b6ae5a4b0174
5
5
  SHA512:
6
- metadata.gz: 4034da120d1294a140edc8ac8f96d2f85aba0e0ea14092a8152f43154634b395391bfd04a80c9191cf7ab58c5b7598855628a144d2b4a73ebe9a7b3798f632dc
7
- data.tar.gz: de01483d3b19fc944832eda36f36398dd99cbf41a9cec52c3fb585d8189edeb1546046352db654f87411c6d923209f08820b6ed6eadc4096f20a2f0cd3dab79f
6
+ metadata.gz: 8f89f037b50d88458b443c534ec78e20d9bbf4661d81cf68774f2bd7438a588cace8a991dfe101d1a4424a98956e186ba20f65d51f47d837ff5237dbf4b00a4f
7
+ data.tar.gz: 22bf4931dc4ee3639334e1e91451e0577591c215ad279802560d8ae7256b56a31a93fcb495b932f9e490658aa2e1bc23e1100c29ed735b0515312f1e9dae2c6f
@@ -28,28 +28,33 @@ module RSpec
28
28
  def self.abq_result(example)
29
29
  execution_result = example.execution_result
30
30
  tags, meta = Manifest.extract_metadata_and_tags(example.metadata)
31
- {
32
- test_result: {
33
- status: status(example),
34
- id: example.id,
35
- display_name: example.metadata[:full_description],
36
- output: if execution_result.exception
37
- RSpec::Core::Formatters::ExceptionPresenter
38
- .new(execution_result.exception, example)
39
- .fully_formatted(1)
40
- end,
41
- runtime: (execution_result.run_time * 1_000_000_000).round,
42
- tags: tags,
43
- meta: meta,
44
- location: {
45
- file: example.metadata[:file_path],
46
- line: example.metadata[:line_number]
47
- },
48
- started_at: execution_result.started_at.utc.iso8601,
49
- finished_at: execution_result.finished_at.utc.iso8601,
50
- lineage: RSpec::Core::Metadata.ascend(example.metadata).map { |meta| meta[:description] }.reverse
51
- }
31
+ test_result = {
32
+ status: status(example),
33
+ id: example.id,
34
+ display_name: example.metadata[:full_description],
35
+ output: if execution_result.exception
36
+ RSpec::Core::Formatters::ExceptionPresenter
37
+ .new(execution_result.exception, example)
38
+ .fully_formatted(1)
39
+ end,
40
+ runtime: (execution_result.run_time * 1_000_000_000).round,
41
+ tags: tags,
42
+ meta: meta,
43
+ location: {
44
+ file: example.metadata[:file_path],
45
+ line: example.metadata[:line_number]
46
+ },
47
+ started_at: execution_result.started_at.utc.iso8601,
48
+ finished_at: execution_result.finished_at.utc.iso8601,
49
+ lineage: RSpec::Core::Metadata.ascend(example.metadata).map { |meta| meta[:description] }.reverse
52
50
  }
51
+
52
+ past_rspec_retry_attempts = rspec_retry_attempts(example)
53
+ if past_rspec_retry_attempts
54
+ test_result[:past_attempts] = past_rspec_retry_attempts
55
+ end
56
+
57
+ {test_result: test_result}
53
58
  end
54
59
 
55
60
  private_class_method def self.status(example)
@@ -82,6 +87,27 @@ module RSpec
82
87
  end
83
88
  end
84
89
  end
90
+
91
+ private_class_method def self.rspec_retry_attempts(example)
92
+ return unless defined?(RSpec::Retry)
93
+ return unless example.metadata.key?(:retry_attempts)
94
+ return unless example.metadata.key?(:retry_exceptions)
95
+
96
+ retry_attempts = example.metadata[:retry_attempts]
97
+ retry_exceptions = example.metadata[:retry_exceptions]
98
+ return unless retry_attempts > 0
99
+
100
+ retry_attempts.times.map do |attempt_index|
101
+ {
102
+ status: {type: :failure},
103
+ id: example.id,
104
+ display_name: example.metadata[:full_description],
105
+ output: retry_exceptions[attempt_index],
106
+ runtime: 0, # rspec-retry does not expose individual durations
107
+ meta: {} # rspec-retry exposes no other metadata beyond attempt and exceptions
108
+ }
109
+ end
110
+ end
85
111
  end
86
112
  end
87
113
  end
@@ -1,6 +1,6 @@
1
1
  module RSpec
2
2
  module Abq
3
3
  # current version!
4
- VERSION = "1.0.7"
4
+ VERSION = "1.1.0"
5
5
  end
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-abq
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.7
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ayaz Hafiz
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-02-02 00:00:00.000000000 Z
12
+ date: 2023-02-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec-core