Skip to content

Commit 9266d0e

Browse files
committed
Fix zeitwerk teardown in test suite
This is using a private interface that changed in 2.6 We probably want to support older versions for a while, so I'm supporting both.
1 parent bf1b482 commit 9266d0e

File tree

2 files changed

+12
-10
lines changed

2 files changed

+12
-10
lines changed

spec/integration/container/auto_registration/component_dir_namespaces/autoloading_loader_spec.rb

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
require "zeitwerk"
55

66
RSpec.describe "Component dir namespaces / Autoloading loader" do
7+
include ZeitwerkHelpers
8+
79
let(:container) {
810
root = @dir
911
dir_config = defined?(component_dir_config) ? component_dir_config : -> * {}
@@ -21,15 +23,7 @@
2123

2224
let(:loader) { Zeitwerk::Loader.new }
2325

24-
after do
25-
Zeitwerk::Registry.loaders.each(&:unload)
26-
27-
Zeitwerk::Registry.loaders.clear
28-
Zeitwerk::Registry.loaders_managing_gems.clear
29-
30-
Zeitwerk::ExplicitNamespace.cpaths.clear
31-
Zeitwerk::ExplicitNamespace.tracer.disable
32-
end
26+
after { teardown_zeitwerk }
3327

3428
context "top-level constant namespace" do
3529
let(:component_dir_config) {

spec/support/zeitwerk_helpers.rb

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,15 @@ def teardown_zeitwerk
77
Zeitwerk::Registry.loaders.each(&:unload)
88

99
Zeitwerk::Registry.loaders.clear
10-
Zeitwerk::Registry.loaders_managing_gems.clear
10+
11+
# This private interface changes between 2.5.4 and 2.6.0
12+
if Zeitwerk::Registry.respond_to?(:loaders_managing_gems)
13+
Zeitwerk::Registry.loaders_managing_gems.clear
14+
else
15+
Zeitwerk::Registry.gem_loaders_by_root_file.clear
16+
Zeitwerk::Registry.autoloads.clear
17+
Zeitwerk::Registry.inceptions.clear
18+
end
1119

1220
Zeitwerk::ExplicitNamespace.cpaths.clear
1321
Zeitwerk::ExplicitNamespace.tracer.disable

0 commit comments

Comments
 (0)