45 lines
1.3 KiB
Ruby
45 lines
1.3 KiB
Ruby
# typed: false
|
|
# frozen_string_literal: true
|
|
|
|
require "cmd/shared_examples/args_parse"
|
|
|
|
describe "brew fetch" do
|
|
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
|
|
setup_test_formula "testball"
|
|
|
|
expect { brew "fetch", "testball" }.to be_a_success
|
|
|
|
expect(HOMEBREW_CACHE/"testball--0.1.tbz").to be_a_symlink
|
|
expect(HOMEBREW_CACHE/"testball--0.1.tbz").to exist
|
|
end
|
|
|
|
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
|
|
end
|