From 94effcc64f4b4621790b6eb59fc9ede58a036efa Mon Sep 17 00:00:00 2001 From: Douglas Eichelberger Date: Sun, 22 Jan 2023 17:06:17 -0800 Subject: [PATCH] Resolve dependency_expansion_spec violation --- .../test/dependency_expansion_spec.rb | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/Library/Homebrew/test/dependency_expansion_spec.rb b/Library/Homebrew/test/dependency_expansion_spec.rb index b0e5b8a6c8..56491ea4ca 100644 --- a/Library/Homebrew/test/dependency_expansion_spec.rb +++ b/Library/Homebrew/test/dependency_expansion_spec.rb @@ -6,7 +6,7 @@ require "dependency" describe Dependency do def build_dep(name, tags = [], deps = []) dep = described_class.new(name.to_s, tags) - allow(dep).to receive(:to_formula).and_return(double(deps: deps, name: name)) + allow(dep).to receive(:to_formula).and_return(instance_double(Formula, deps: deps, name: name)) dep end @@ -15,7 +15,7 @@ describe Dependency do let(:baz) { build_dep(:baz) } let(:qux) { build_dep(:qux) } let(:deps) { [foo, bar, baz, qux] } - let(:formula) { double(deps: deps, name: "f") } + let(:formula) { instance_double(Formula, deps: deps, name: "f") } describe "::expand" do it "yields dependent and dependency pairs" do @@ -44,20 +44,20 @@ describe Dependency do end it "preserves dependency order" do - allow(foo).to receive(:to_formula).and_return(double(name: "f", deps: [qux, baz])) + allow(foo).to receive(:to_formula).and_return(instance_double(Formula, name: "f", deps: [qux, baz])) expect(described_class.expand(formula)).to eq([qux, baz, foo, bar]) end end it "skips optionals by default" do deps = [build_dep(:foo, [:optional]), bar, baz, qux] - f = double(deps: deps, build: double(with?: false), name: "f") + f = instance_double(Formula, deps: deps, build: instance_double(BuildOptions, with?: false), name: "f") expect(described_class.expand(f)).to eq([bar, baz, qux]) end it "keeps recommended dependencies by default" do deps = [build_dep(:foo, [:recommended]), bar, baz, qux] - f = double(deps: deps, build: double(with?: true), name: "f") + f = instance_double(Formula, deps: deps, build: instance_double(BuildOptions, with?: true), name: "f") expect(described_class.expand(f)).to eq(deps) end @@ -75,7 +75,7 @@ describe Dependency do it "merges dependencies and preserves env_proc" do env_proc = double dep = described_class.new("foo", [], env_proc) - allow(dep).to receive(:to_formula).and_return(double(deps: [], name: "foo")) + allow(dep).to receive(:to_formula).and_return(instance_double(Formula, deps: [], name: "foo")) deps.replace([dep]) expect(described_class.expand(formula).first.env_proc).to eq(env_proc) end @@ -89,7 +89,8 @@ describe Dependency do end it "skips parent but yields children with ::skip" do - f = double( + f = instance_double( + Formula, name: "f", deps: [ build_dep(:foo, [], [bar, baz]), @@ -107,7 +108,7 @@ describe Dependency do it "keeps dependency but prunes recursive dependencies with ::keep_but_prune_recursive_deps" do foo = build_dep(:foo, [:test], bar) baz = build_dep(:baz, [:test]) - f = double(name: "f", deps: [foo, baz]) + f = instance_double(Formula, name: "f", deps: [foo, baz]) deps = described_class.expand(f) do |_dependent, dep| described_class.keep_but_prune_recursive_deps if dep.test? @@ -124,15 +125,15 @@ describe Dependency do it "doesn't raise an error when a dependency is cyclic" do foo = build_dep(:foo) bar = build_dep(:bar, [], [foo]) - allow(foo).to receive(:to_formula).and_return(double(deps: [bar], name: foo.name)) - f = double(name: "f", deps: [foo, bar]) + allow(foo).to receive(:to_formula).and_return(instance_double(Formula, deps: [bar], name: foo.name)) + f = instance_double(Formula, name: "f", deps: [foo, bar]) expect { described_class.expand(f) }.not_to raise_error end it "cleans the expand stack" do foo = build_dep(:foo) allow(foo).to receive(:to_formula).and_raise(FormulaUnavailableError, foo.name) - f = double(name: "f", deps: [foo]) + f = instance_double(Formula, name: "f", deps: [foo]) expect { described_class.expand(f) }.to raise_error(FormulaUnavailableError) expect(described_class.instance_variable_get(:@expand_stack)).to be_empty end