brew/Library/Homebrew/test/cmd/fetch_spec.rb

45 lines
1.3 KiB
Ruby
Raw Normal View History

2020-10-10 14:16:11 +02:00
# typed: false
# frozen_string_literal: true
require "cmd/shared_examples/args_parse"
describe "brew fetch" do
2023-03-13 22:31:09 +09:00
let(:local_transmission) do
Cask::CaskLoader.load(cask_path("local-transmission"))
end
it_behaves_like "parseable arguments"
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
expect(HOMEBREW_CACHE/"testball--0.1.tbz").to be_a_symlink
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