diff --git a/Library/Homebrew/cask/info.rb b/Library/Homebrew/cask/info.rb index 328bac7ae5..acac2cbc29 100644 --- a/Library/Homebrew/cask/info.rb +++ b/Library/Homebrew/cask/info.rb @@ -42,16 +42,15 @@ module Cask return "Not installed" unless cask.installed? versioned_staged_path = cask.caskroom_path.join(cask.installed_version) - path_details = if versioned_staged_path.exist? - versioned_staged_path.abv - else - Formatter.error("does not exist") - end + + return "Installed\n#{versioned_staged_path} (#{Formatter.error("does not exist")})\n" unless versioned_staged_path.exist? + + path_details = versioned_staged_path.children.sum(&:disk_usage) tab = Tab.for_cask(cask) info = ["Installed"] - info << "#{versioned_staged_path} (#{path_details})" + info << "#{versioned_staged_path} (#{disk_usage_readable(path_details)})" info << " #{tab}" if tab.tabfile&.exist? info.join("\n") end diff --git a/Library/Homebrew/test/cask/info_spec.rb b/Library/Homebrew/test/cask/info_spec.rb index b53c4ef3c0..d37557cc08 100644 --- a/Library/Homebrew/test/cask/info_spec.rb +++ b/Library/Homebrew/test/cask/info_spec.rb @@ -123,28 +123,33 @@ RSpec.describe Cask::Info, :cask do end it "prints install information for an installed Cask" do - cask = Cask::CaskLoader.load("local-transmission") - time = 1_720_189_863 - tab = Cask::Tab.new(loaded_from_api: true, tabfile: TEST_FIXTURE_DIR/"cask_receipt.json", time:) - expect(cask).to receive(:installed?).and_return(true) - expect(cask).to receive(:installed_version).and_return("2.61") - expect(Cask::Tab).to receive(:for_cask).with(cask).and_return(tab) + mktmpdir do |caskroom| + FileUtils.mkdir caskroom/"2.61" - expect do - described_class.info(cask) - end.to output(<<~EOS).to_stdout - ==> local-transmission: 2.61 - https://transmissionbt.com/ - Installed - #{HOMEBREW_PREFIX}/Caskroom/local-transmission/2.61 (does not exist) - Installed using the formulae.brew.sh API on #{Time.at(time).strftime("%Y-%m-%d at %H:%M:%S")} - From: https://github.com/Homebrew/homebrew-cask/blob/HEAD/Casks/l/local-transmission.rb - ==> Name - Transmission - ==> Description - BitTorrent client - ==> Artifacts - Transmission.app (App) - EOS + cask = Cask::CaskLoader.load("local-transmission") + time = 1_720_189_863 + tab = Cask::Tab.new(loaded_from_api: true, tabfile: TEST_FIXTURE_DIR/"cask_receipt.json", time:) + expect(cask).to receive(:installed?).and_return(true) + expect(cask).to receive(:caskroom_path).and_return(caskroom) + expect(cask).to receive(:installed_version).and_return("2.61") + expect(Cask::Tab).to receive(:for_cask).with(cask).and_return(tab) + + expect do + described_class.info(cask) + end.to output(<<~EOS).to_stdout + ==> local-transmission: 2.61 + https://transmissionbt.com/ + Installed + #{caskroom}/2.61 (0B) + Installed using the formulae.brew.sh API on #{Time.at(time).strftime("%Y-%m-%d at %H:%M:%S")} + From: https://github.com/Homebrew/homebrew-cask/blob/HEAD/Casks/l/local-transmission.rb + ==> Name + Transmission + ==> Description + BitTorrent client + ==> Artifacts + Transmission.app (App) + EOS + end end end