test/bundle: improve coverage

This commit is contained in:
Bo Anderson 2025-03-28 05:54:36 +00:00
parent 650f62bcba
commit c273d8b467
No known key found for this signature in database

View File

@ -46,6 +46,14 @@ RSpec.describe Homebrew::Bundle::BrewServices do
expect(described_class.started_services).to include("nginx") expect(described_class.started_services).to include("nginx")
end end
it "runs the service" do
allow(described_class).to receive(:started_services).and_return([])
expect(Homebrew::Bundle).to receive(:system).with(HOMEBREW_BREW_FILE, "services", "run", "nginx",
verbose: false).and_return(true)
expect(described_class.run("nginx")).to be(true)
expect(described_class.started_services).to include("nginx")
end
it "restarts the service" do it "restarts the service" do
allow(described_class).to receive(:started_services).and_return([]) allow(described_class).to receive(:started_services).and_return([])
expect(Homebrew::Bundle).to receive(:system).with(HOMEBREW_BREW_FILE, "services", "restart", "nginx", expect(Homebrew::Bundle).to receive(:system).with(HOMEBREW_BREW_FILE, "services", "restart", "nginx",
@ -54,4 +62,32 @@ RSpec.describe Homebrew::Bundle::BrewServices do
expect(described_class.started_services).to include("nginx") expect(described_class.started_services).to include("nginx")
end end
end end
describe ".versioned_service_file" do
let(:foo) do
instance_double(
Formula,
name: "fooformula",
version: "1.0",
rack: HOMEBREW_CELLAR/"fooformula",
plist_name: "homebrew.mxcl.fooformula",
)
end
it "returns the versioned service file" do
expect(Formula).to receive(:[]).with(foo.name).and_return(foo)
expect(Homebrew::Bundle).to receive(:formula_versions_from_env).and_return(foo.name => foo.version)
prefix = foo.rack/"1.0"
allow(FileTest).to receive(:directory?).and_call_original
expect(FileTest).to receive(:directory?).with(prefix.to_s).and_return(true)
service_file = prefix/"#{foo.plist_name}.plist"
expect(Homebrew::Services::System).to receive(:launchctl?).and_return(true)
allow(FileTest).to receive(:file?).and_call_original
expect(FileTest).to receive(:file?).with(service_file.to_s).and_return(true)
expect(described_class.versioned_service_file(foo.name)).to eq(service_file)
end
end
end end