Introduce convention for collapsed directories in tests

This commit is contained in:
Xavier Noria 2022-11-13 11:17:00 +01:00
parent 6d1ec8efee
commit 3709e0e992
5 changed files with 25 additions and 58 deletions

View File

@ -5,38 +5,26 @@ require "set"
class TestCollapse < LoaderTest
test "top-level directories can be collapsed" do
files = [["foo/bar/x.rb", "Bar::X = true"]]
with_files(files) do
loader.push_dir(".")
loader.collapse("foo")
loader.setup
files = [["collapsed/bar/x.rb", "Bar::X = true"]]
with_setup(files) do
assert Bar::X
end
end
test "collapsed directories are ignored as namespaces" do
files = [["foo/bar/x.rb", "Foo::X = true"]]
with_files(files) do
loader.push_dir(".")
loader.collapse("foo/bar")
loader.setup
files = [["foo/collapsed/x.rb", "Foo::X = true"]]
with_setup(files) do
assert Foo::X
end
end
test "collapsed directories are ignored as explicit namespaces" do
files = [
["foo.rb", "Foo = true"],
["foo/x.rb", "X = true"]
["collapsed.rb", "Collapsed = true"],
["collapsed/x.rb", "X = true"]
]
with_files(files) do
loader.push_dir(".")
loader.collapse("foo")
loader.setup
assert Foo
with_setup(files) do
assert Collapsed
assert X
end
end
@ -114,7 +102,7 @@ class TestCollapse < LoaderTest
end
end
test "collapse directories are recomputed on reload" do
test "collapse glob patterns are recomputed on reload" do
files = [["foo/bar/x.rb", "Foo::X = true"]]
with_files(files) do
loader.push_dir(".")
@ -136,27 +124,19 @@ class TestCollapse < LoaderTest
test "collapse directories are honored when eager loading" do
$collapse_honored_when_eager_loading = false
files = [["foo/bar/x.rb", "Foo::X = true; $collapse_honored_when_eager_loading = true"]]
with_files(files) do
loader.push_dir(".")
loader.collapse("foo/bar")
loader.setup
files = [["foo/collapsed/x.rb", "Foo::X = true"]]
with_setup(files) do
loader.eager_load
assert $collapse_honored_when_eager_loading
assert required?(files)
end
end
test "collapsed top-level directories are eager loaded too" do
$collapse_honored_when_eager_loading = false
files = [["foo/bar/x.rb", "Bar::X = true; $collapse_honored_when_eager_loading = true"]]
with_files(files) do
loader.push_dir(".")
loader.collapse("foo")
loader.setup
files = [["collapsed/bar/x.rb", "Bar::X = true"]]
with_setup(files) do
loader.eager_load
assert $collapse_honored_when_eager_loading
assert required?(files)
end
end
end

View File

@ -176,10 +176,7 @@ class TestEagerLoadDir < LoaderTest
# This is a file system-based interface.
test "eager loads collapsed directories, ignoring the rest of the namespace" do
files = [["x.rb", "X = 1"], ["collapsed/y.rb", "Y = 1"]]
with_files(files) do
loader.push_dir(".")
loader.collapse("collapsed")
loader.setup
with_setup(files) do
loader.eager_load_dir("collapsed")
assert !required?(files[0])

View File

@ -54,17 +54,12 @@ class TestEagerLoadNamespaceWithObjectRootNamespace < LoaderTest
test "supports collapsed directories" do
files = [
["a/collapsed/m/x.rb", "M::X = 1"],
["b/y.rb", "Y = 1"],
["b/m/y.rb", "M::Y = 1"]
["rd1/collapsed/m/x.rb", "M::X = 1"],
["rd2/y.rb", "Y = 1"],
["rd2/m/y.rb", "M::Y = 1"]
]
with_files(files) do
loader.push_dir("a")
loader.push_dir("b")
loader.collapse("a/collapsed")
loader.setup
with_setup(files) do
loader.eager_load_namespace(M)
assert required?(files[0])
assert !required?(files[1])
assert required?(files[2])

View File

@ -6,7 +6,6 @@ class TestLoadFile < LoaderTest
files = [["x.rb", "X = 1"]]
with_setup(files) do
loader.load_file("x.rb")
assert required?(files[0])
end
end
@ -15,7 +14,6 @@ class TestLoadFile < LoaderTest
files = [["x.rb", "X = 1"]]
with_setup(files) do
loader.load_file(Pathname.new("x.rb"))
assert required?(files[0])
end
end
@ -24,7 +22,6 @@ class TestLoadFile < LoaderTest
files = [["x.rb", "#{self.class}::X = 1"]]
with_setup(files, namespace: self.class) do
loader.load_file("x.rb")
assert required?(files[0])
end
end
@ -33,7 +30,6 @@ class TestLoadFile < LoaderTest
files = [["m/x.rb", "M::X = 1"]]
with_setup(files) do
loader.load_file("m/x.rb")
assert required?(files[0])
end
end
@ -42,19 +38,14 @@ class TestLoadFile < LoaderTest
files = [["m/x.rb", "#{self.class}::M::X = 1"]]
with_setup(files, namespace: self.class) do
loader.load_file("m/x.rb")
assert required?(files[0])
end
end
test "supports collapsed directories" do
files = [["m/collapsed/x.rb", "M::X = 1"]]
with_files(files) do
loader.push_dir(".")
loader.collapse("m/collapsed")
loader.setup
with_setup(files) do
loader.load_file("m/collapsed/x.rb")
assert required?(files[0])
end
end

View File

@ -92,6 +92,10 @@ class LoaderTest < Minitest::Test
elsif file[0] =~ %r{\A(ignored|.+/ignored)/}
loader.ignore($1)
end
if file[0] =~ %r{\A(collapsed|.+/collapsed)/}
loader.collapse($1)
end
end
loader.setup