2017-03-05 19:26:56 +01:00
|
|
|
describe Hbc::Scopes, :cask do
|
2016-08-18 22:11:42 +03:00
|
|
|
describe "installed" do
|
|
|
|
it "returns a list installed Casks by loading Casks for all the dirs that exist in the caskroom" do
|
|
|
|
allow(Hbc).to receive(:load) { |token| "loaded-#{token}" }
|
|
|
|
|
2017-02-08 08:29:41 +01:00
|
|
|
Hbc.caskroom.join("cask-bar").mkpath
|
|
|
|
Hbc.caskroom.join("cask-foo").mkpath
|
2016-08-18 22:11:42 +03:00
|
|
|
|
|
|
|
installed_casks = Hbc.installed
|
|
|
|
|
|
|
|
expect(Hbc).to have_received(:load).with("cask-bar")
|
|
|
|
expect(Hbc).to have_received(:load).with("cask-foo")
|
2017-02-08 08:29:41 +01:00
|
|
|
expect(installed_casks).to eq(
|
|
|
|
%w[
|
|
|
|
loaded-cask-bar
|
|
|
|
loaded-cask-foo
|
2017-02-12 15:06:54 +00:00
|
|
|
],
|
2017-02-08 08:29:41 +01:00
|
|
|
)
|
2016-08-18 22:11:42 +03:00
|
|
|
end
|
|
|
|
|
|
|
|
it "optimizes performance by resolving to a fully qualified path before calling Hbc.load" do
|
2017-02-08 08:29:41 +01:00
|
|
|
fake_tapped_cask_dir = Pathname.new(Dir.mktmpdir).join("Casks")
|
2016-08-18 22:11:42 +03:00
|
|
|
absolute_path_to_cask = fake_tapped_cask_dir.join("some-cask.rb")
|
|
|
|
|
|
|
|
allow(Hbc).to receive(:load)
|
|
|
|
allow(Hbc).to receive(:all_tapped_cask_dirs) { [fake_tapped_cask_dir] }
|
|
|
|
|
2017-02-08 08:29:41 +01:00
|
|
|
Hbc.caskroom.join("some-cask").mkdir
|
2016-08-18 22:11:42 +03:00
|
|
|
fake_tapped_cask_dir.mkdir
|
|
|
|
FileUtils.touch(absolute_path_to_cask)
|
|
|
|
|
|
|
|
Hbc.installed
|
|
|
|
|
|
|
|
expect(Hbc).to have_received(:load).with(absolute_path_to_cask)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|