2020-09-10 19:45:02 +02:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2024-03-29 16:20:40 -07:00
|
|
|
require "cmd/autoremove"
|
2020-09-10 19:45:02 +02:00
|
|
|
require "cmd/shared_examples/args_parse"
|
|
|
|
|
2024-03-29 16:20:40 -07:00
|
|
|
RSpec.describe Homebrew::Cmd::Autoremove do
|
2020-09-10 19:45:02 +02:00
|
|
|
it_behaves_like "parseable arguments"
|
2022-07-29 23:49:23 -07:00
|
|
|
|
|
|
|
describe "integration test" do
|
|
|
|
let(:requested_formula) { Formula["testball1"] }
|
|
|
|
let(:unused_formula) { Formula["testball2"] }
|
|
|
|
|
|
|
|
before do
|
2024-06-14 17:26:28 +01:00
|
|
|
# Make testball1 poured from a bottle
|
2022-07-29 23:49:23 -07:00
|
|
|
install_test_formula "testball1"
|
2024-06-14 17:26:28 +01:00
|
|
|
tab = Tab.for_name("testball1")
|
|
|
|
tab.poured_from_bottle = true
|
|
|
|
tab.write
|
2022-07-29 23:49:23 -07:00
|
|
|
|
2024-06-14 17:26:28 +01:00
|
|
|
# Make testball2 poured from a bottle and an unused dependency
|
|
|
|
install_test_formula "testball2"
|
2022-07-29 23:49:23 -07:00
|
|
|
tab = Tab.for_name("testball2")
|
|
|
|
tab.installed_on_request = false
|
|
|
|
tab.installed_as_dependency = true
|
2024-06-14 17:26:28 +01:00
|
|
|
tab.poured_from_bottle = true
|
2022-07-29 23:49:23 -07:00
|
|
|
tab.write
|
|
|
|
end
|
|
|
|
|
|
|
|
it "only removes unused dependencies", :integration_test do
|
|
|
|
expect(requested_formula.any_version_installed?).to be true
|
|
|
|
expect(unused_formula.any_version_installed?).to be true
|
|
|
|
|
|
|
|
# When there are unused dependencies
|
|
|
|
expect { brew "autoremove" }
|
|
|
|
.to be_a_success
|
|
|
|
.and output(/Autoremoving/).to_stdout
|
|
|
|
.and not_to_output.to_stderr
|
|
|
|
|
|
|
|
expect(requested_formula.any_version_installed?).to be true
|
|
|
|
expect(unused_formula.any_version_installed?).to be false
|
|
|
|
end
|
|
|
|
end
|
2020-09-10 19:45:02 +02:00
|
|
|
end
|