add new spec to cmd/fetch_spec

This commit is contained in:
hyuraku 2023-03-13 22:31:09 +09:00
parent 08560e04ae
commit 7d90e3a2a1

View File

@ -4,6 +4,10 @@
require "cmd/shared_examples/args_parse" require "cmd/shared_examples/args_parse"
describe "brew fetch" do describe "brew fetch" do
let(:local_transmission) do
Cask::CaskLoader.load(cask_path("local-transmission"))
end
it_behaves_like "parseable arguments" it_behaves_like "parseable arguments"
it "downloads the Formula's URL", :integration_test do it "downloads the Formula's URL", :integration_test do
@ -14,4 +18,27 @@ describe "brew fetch" do
expect(HOMEBREW_CACHE/"testball--0.1.tbz").to be_a_symlink expect(HOMEBREW_CACHE/"testball--0.1.tbz").to be_a_symlink
expect(HOMEBREW_CACHE/"testball--0.1.tbz").to exist expect(HOMEBREW_CACHE/"testball--0.1.tbz").to exist
end 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 end