gitlab-crystalball 1.1.1 → 1.1.3

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: '09338c254c5dab6b9c1e9dc9547a923779b7dbc959690ab180d723d7668c1ec0'
4
- data.tar.gz: 153ced689ef2d086dd23918ef153ad9bde0ea75306fd1053d17c7ff09a076211
3
+ metadata.gz: 0b2f24d36d9096bfc8b213b0d5c479f2a9cdd5d3eb7c67dae256ef3263e3d371
4
+ data.tar.gz: f73bf079ec17508213b4cf72445a999fff0c3e8222473d3c4b92bc8306deaa08
5
5
  SHA512:
6
- metadata.gz: '071864d290306263dd6c18cfba33bc2b6efa56087c274437ea45cbb9bd6480a1e29de371654c38aa59224362f5990a7546ae0876f3cde2bc3f58545e0021507e'
7
- data.tar.gz: 04e37581bc6decd802d879e703220bd4fbd619e7520a2851b8eb8ba1146a2e33eafa5edbf9261f8b6d632adfef458ded83d6b255d9582c964e1bb2cc017c7a2c
6
+ metadata.gz: 96dbdf82126afd3763f6d0baa1cb763bb79fe8e4a191eec30ad631f5a0d70fd4e0c9936b9323f3fa943c6115a91a45a3928b89ac37addaab3950991825a3972d
7
+ data.tar.gz: 14b78a6dd03fbd90729b5334ca627b22a975d1dadabd74adbe7a7db9c47d354391893d84210fbdcbb5bcb939531c8cf52c977e89ee58549975c44d7e3dd59b0f
@@ -16,6 +16,11 @@ module Crystalball
16
16
  # @param[Array<String>] list of files affected after example execution
17
17
  # @return [Array<String>]
18
18
  def detect(before, after)
19
+ # `before` can be nil when specs run nested example groups inside a
20
+ # before(:context) hook, causing inner after(:context) hooks to clear
21
+ # the coverage baseline. CoverageStrategy#run_after logs a warning.
22
+ return [] unless before
23
+
19
24
  after.filter_map do |file, coverage|
20
25
  before_cov = before[file]&.fetch(:lines, [])
21
26
  next if before_cov == coverage[:lines]
@@ -30,6 +30,12 @@ module Crystalball
30
30
  end
31
31
 
32
32
  def run_after(example_map, example)
33
+ unless before_coverage
34
+ log(:warn, "[CoverageStrategy] Skipping coverage detection for #{example.id}: " \
35
+ "before_coverage is nil (nested context hooks may have cleared it)")
36
+ return
37
+ end
38
+
33
39
  log_debug("Recording mappings for example id: #{example.id}")
34
40
  mappings = execution_detector.detect(before_coverage, Coverage.peek_result)
35
41
  log_debug("#{example.id} recorded #{mappings.size} files")
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Crystalball
4
- VERSION = "1.1.1"
4
+ VERSION = "1.1.3"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitlab-crystalball
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pavel Shutsin
@@ -10,7 +10,7 @@ authors:
10
10
  - GitLab Developer Experience Team
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2025-07-01 00:00:00.000000000 Z
13
+ date: 2026-03-05 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: git