2019-04-19 15:38:03 +09:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2019-03-28 08:35:36 +00:00
|
|
|
require "cmd/shared_examples/args_parse"
|
2024-04-01 11:58:35 -07:00
|
|
|
require "cmd/upgrade"
|
2019-03-28 08:35:36 +00:00
|
|
|
|
2024-04-01 11:58:35 -07:00
|
|
|
RSpec.describe Homebrew::Cmd::UpgradeCmd do
|
2019-03-28 08:35:36 +00:00
|
|
|
it_behaves_like "parseable arguments"
|
|
|
|
|
2021-02-01 16:14:25 -05:00
|
|
|
it "upgrades a Formula and cleans up old versions", :integration_test do
|
2017-02-23 06:07:01 +01:00
|
|
|
setup_test_formula "testball"
|
|
|
|
(HOMEBREW_CELLAR/"testball/0.0.1/foo").mkpath
|
|
|
|
|
2017-07-29 19:55:05 +02:00
|
|
|
expect { brew "upgrade" }.to be_a_success
|
2017-02-23 06:07:01 +01:00
|
|
|
|
2018-09-12 19:28:02 +00:00
|
|
|
expect(HOMEBREW_CELLAR/"testball/0.1").to be_a_directory
|
|
|
|
expect(HOMEBREW_CELLAR/"testball/0.0.1").not_to exist
|
|
|
|
end
|
2025-03-05 17:37:25 -05:00
|
|
|
|
|
|
|
it "upgrades with asking for user prompts", :integration_test do
|
|
|
|
setup_test_formula "testball"
|
|
|
|
(HOMEBREW_CELLAR/"testball/0.0.1/foo").mkpath
|
|
|
|
|
2025-03-06 21:27:25 -05:00
|
|
|
expect do
|
|
|
|
brew "upgrade", "--ask"
|
|
|
|
end.to output(/.*Formula\s*\(1\):\s*testball.*/).to_stdout.and not_to_output.to_stderr
|
|
|
|
|
|
|
|
expect(HOMEBREW_CELLAR/"testball/0.1").to be_a_directory
|
|
|
|
expect(HOMEBREW_CELLAR/"testball/0.0.1").not_to exist
|
|
|
|
end
|
|
|
|
|
|
|
|
it "upgrades with asking for user prompts with dependants checks", :integration_test do
|
2025-03-06 21:43:24 -05:00
|
|
|
setup_test_formula "testball", <<~RUBY
|
2025-03-06 21:27:25 -05:00
|
|
|
depends_on "testball5"
|
|
|
|
# should work as its not building but test doesnt pass if dependant
|
|
|
|
# depends_on "build" => :build
|
|
|
|
depends_on "installed"
|
|
|
|
RUBY
|
|
|
|
setup_test_formula "installed"
|
|
|
|
setup_test_formula "testball5", <<~RUBY
|
|
|
|
depends_on "testball4"
|
|
|
|
RUBY
|
|
|
|
setup_test_formula "testball4"
|
|
|
|
setup_test_formula "hiop"
|
|
|
|
setup_test_formula "build"
|
|
|
|
|
|
|
|
(HOMEBREW_CELLAR/"testball/0.0.1/foo").mkpath
|
|
|
|
(HOMEBREW_CELLAR/"testball5/0.0.1/foo").mkpath
|
|
|
|
(HOMEBREW_CELLAR/"testball4/0.0.1/foo").mkpath
|
|
|
|
|
2025-03-06 22:03:15 -05:00
|
|
|
keg_dir = HOMEBREW_CELLAR/"installed"/"1.0"
|
|
|
|
keg_dir.mkpath
|
|
|
|
touch keg_dir/AbstractTab::FILENAME
|
|
|
|
|
2025-03-05 17:37:25 -05:00
|
|
|
expect {
|
|
|
|
brew "upgrade", "--ask"
|
2025-03-06 22:03:15 -05:00
|
|
|
}.to output(/.*Formulae\s*\(3\):\s*testball4\s*,?\s*testball5\s*,?\s*testball5.*/)
|
2025-03-06 21:27:25 -05:00
|
|
|
.to_stdout.and not_to_output.to_stderr
|
2025-03-05 17:37:25 -05:00
|
|
|
|
|
|
|
expect(HOMEBREW_CELLAR/"testball/0.1").to be_a_directory
|
|
|
|
expect(HOMEBREW_CELLAR/"testball/0.0.1").not_to exist
|
2025-03-06 21:27:25 -05:00
|
|
|
expect(HOMEBREW_CELLAR/"testball5/0.1").to be_a_directory
|
|
|
|
expect(HOMEBREW_CELLAR/"testball5/0.0.1").not_to exist
|
|
|
|
expect(HOMEBREW_CELLAR/"testball4/0.1").to be_a_directory
|
|
|
|
expect(HOMEBREW_CELLAR/"testball4/0.0.1").not_to exist
|
2025-03-05 17:37:25 -05:00
|
|
|
end
|
2017-02-23 06:07:01 +01:00
|
|
|
end
|