2020-10-10 14:16:11 +02:00
|
|
|
# typed: false
|
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"
|
|
|
|
|
2021-02-01 16:14:25 -05:00
|
|
|
describe "brew fetch" do
|
2023-03-13 22:31:09 +09:00
|
|
|
let(:local_transmission) do
|
|
|
|
Cask::CaskLoader.load(cask_path("local-transmission"))
|
|
|
|
end
|
|
|
|
|
2019-03-28 08:35:36 +00:00
|
|
|
it_behaves_like "parseable arguments"
|
|
|
|
|
2021-02-01 16:14:25 -05:00
|
|
|
it "downloads the Formula's URL", :integration_test do
|
2017-02-23 06:05:33 +01:00
|
|
|
setup_test_formula "testball"
|
|
|
|
|
2017-07-29 19:55:05 +02:00
|
|
|
expect { brew "fetch", "testball" }.to be_a_success
|
2017-02-23 06:05:33 +01:00
|
|
|
|
2018-08-10 04:11:54 +02:00
|
|
|
expect(HOMEBREW_CACHE/"testball--0.1.tbz").to be_a_symlink
|
2018-08-03 18:38:30 +02:00
|
|
|
expect(HOMEBREW_CACHE/"testball--0.1.tbz").to exist
|
2017-02-23 06:05:33 +01:00
|
|
|
end
|
2023-03-13 22:31:09 +09:00
|
|
|
|
|
|
|
it "prevents double fetch (without nuking existing installation)", :integration_test, :needs_macos do
|
|
|
|
cached_location = Cask::Download.new(local_transmission).fetch
|
|
|
|
|
|
|
|
old_ctime = File.stat(cached_location).ctime
|
|
|
|
|
|
|
|
expect { brew "fetch", "local-transmission", "--cask", "--no-quarantine" }.to be_a_success
|
|
|
|
new_ctime = File.stat(cached_location).ctime
|
|
|
|
|
|
|
|
expect(old_ctime.to_i).to eq(new_ctime.to_i)
|
|
|
|
end
|
|
|
|
|
|
|
|
it "allows double fetch with --force", :integration_test, :needs_macos do
|
|
|
|
cached_location = Cask::Download.new(local_transmission).fetch
|
|
|
|
|
|
|
|
old_ctime = File.stat(cached_location).ctime
|
|
|
|
sleep(1)
|
|
|
|
|
|
|
|
expect { brew "fetch", "local-transmission", "--cask", "--force", "--no-quarantine" }.to be_a_success
|
|
|
|
new_ctime = File.stat(cached_location).ctime
|
|
|
|
|
|
|
|
expect(new_ctime.to_i).to be > old_ctime.to_i
|
|
|
|
end
|
2017-02-23 06:05:33 +01:00
|
|
|
end
|