evilution 0.22.3 → 0.22.4

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: 05657264e506e5a6b5041d68b5eb46bfcbbf9a17780caeb3c44feaf5f5d18794
4
- data.tar.gz: a7e6333fc26d21799b3807d3fbc2758ae54e00de2c7f1028e5ad30cf8777e8d2
3
+ metadata.gz: 64e44290d350e92d6c70bdd99a4a982fa8f0a33cf36062e3fa8f0fa5eea553a8
4
+ data.tar.gz: 31c5dbe19058f73d8c8ae2301649ec44127b1b0487955c8b26b2732e1e69f967
5
5
  SHA512:
6
- metadata.gz: 8d791eba8e795dcaa34c6ff3cc82a4b9653cfc282fcff1f7a75911bdfbd192689d21324ad793077700644a497c8320b2fb77e874bff63cd98c1a788390a27309
7
- data.tar.gz: 5ee22113b3b0343c60c08ca4c4c4160492617827376c783fbe0052d5a5a59ab37199fc16de349502c6c7d26f2c64814abf7ad31228e325dcdc1be86e1a7930d7
6
+ metadata.gz: 24d6294bd7f0ef343fb7b3d4573e1217389e3c1e38ac5a4056da51ac3cda0a298dbd33abae25d2bdd927f82f07d0079f1d7b3530e65ff2efb8acc96778631e46
7
+ data.tar.gz: d767b3b380fcfed64b64915e177931d72939d5fbb6a5498676c989daed2f34df969843e1a2c5f04be83e0498bfba2e4198cc65eb04a9904d654db49758904e99
data/CHANGELOG.md CHANGED
@@ -1,10 +1,16 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.22.4] - 2026-04-12
4
+
5
+ ### Fixed
6
+
7
+ - **`LoadError: cannot load such file -- spec_helper` during preload** — `perform_preload` ran before `ensure_framework_loaded`, so `spec/` was not on `$LOAD_PATH` and `rspec/core` was not loaded when `rails_helper.rb` tried to `require 'spec_helper'` and call `RSpec.configure`; now `prepare_load_path_for_preload` adds `spec/` to `$LOAD_PATH` and loads `rspec/core` before the preload file; errors (e.g. missing `rspec-core` gem) propagate as `ConfigError` with clear context (#669, #673)
8
+
3
9
  ## [0.22.3] - 2026-04-12
4
10
 
5
11
  ### Fixed
6
12
 
7
- - **`LoadError: cannot load such file -- spec_helper`** — projects with `--require spec_helper` in `.rspec` failed on every mutation because `spec/` was not on `$LOAD_PATH`; RSpec's CLI normally adds it, but evilution calls `RSpec::Core::Runner.run` directly, bypassing the CLI; now adds `spec/` to `$LOAD_PATH` in both `ensure_framework_loaded` and `baseline_runner` (#669)
13
+ - **`LoadError: cannot load such file -- spec_helper`** — projects with `--require spec_helper` in `.rspec` failed on every mutation because `spec/` was not on `$LOAD_PATH`; RSpec's CLI normally adds it, but evilution calls `RSpec::Core::Runner.run` directly, bypassing the CLI; now adds `spec/` to `$LOAD_PATH` in `ensure_framework_loaded`, `baseline_runner`, and `perform_preload`; also loads `rspec/core` before preloading so that `spec_helper.rb` can use `RSpec.configure` (#669)
8
14
 
9
15
  ## [0.22.2] - 2026-04-12
10
16
 
@@ -528,6 +528,7 @@ class Evilution::Runner
528
528
  path = resolve_preload_path
529
529
  return unless path
530
530
 
531
+ prepare_load_path_for_preload
531
532
  require File.expand_path(path)
532
533
  rescue ScriptError, StandardError => e
533
534
  raise Evilution::ConfigError.new(
@@ -536,6 +537,23 @@ class Evilution::Runner
536
537
  )
537
538
  end
538
539
 
540
+ # Preload files (e.g. spec/rails_helper.rb) typically `require 'spec_helper'`
541
+ # which needs spec/ on $LOAD_PATH, and use `RSpec.configure` which needs
542
+ # rspec/core loaded. The RSpec CLI normally sets this up, but evilution
543
+ # calls Runner.run directly.
544
+ def prepare_load_path_for_preload
545
+ spec_dir = File.expand_path(resolve_spec_dir)
546
+ $LOAD_PATH.unshift(spec_dir) unless $LOAD_PATH.include?(spec_dir)
547
+ require "rspec/core" if config.integration == :rspec
548
+ end
549
+
550
+ def resolve_spec_dir
551
+ root = detected_rails_root
552
+ return File.join(root, "spec") if root
553
+
554
+ "spec"
555
+ end
556
+
539
557
  def resolve_preload_path
540
558
  if config.preload.is_a?(String)
541
559
  unless File.file?(config.preload)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Evilution
4
- VERSION = "0.22.3"
4
+ VERSION = "0.22.4"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: evilution
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.22.3
4
+ version: 0.22.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Denis Kiselev