From 0799222df261b180372758469b1c6504e405ad38 Mon Sep 17 00:00:00 2001 From: Justin Krehel <39449589+krehel@users.noreply.github.com> Date: Mon, 15 Jul 2024 11:24:38 -0400 Subject: [PATCH 1/3] cask/info: fix installed size reporting --- Library/Homebrew/cask/info.rb | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) 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 From 9ff4bab171527e7db313ad2483ddf4ae7a574470 Mon Sep 17 00:00:00 2001 From: Rylan Polster Date: Mon, 15 Jul 2024 13:31:39 -0400 Subject: [PATCH 2/3] Fix tab info test --- Library/Homebrew/test/cask/info_spec.rb | 53 ++++++++++++++----------- 1 file changed, 30 insertions(+), 23 deletions(-) diff --git a/Library/Homebrew/test/cask/info_spec.rb b/Library/Homebrew/test/cask/info_spec.rb index b53c4ef3c0..d70dcce4db 100644 --- a/Library/Homebrew/test/cask/info_spec.rb +++ b/Library/Homebrew/test/cask/info_spec.rb @@ -122,29 +122,36 @@ RSpec.describe Cask::Info, :cask do EOS 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) + context "when a Cask is installed" do + it "prints install information from tab" do + 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 end From 284f6b8829170ab3ebdf635bd47b3c49d8569b66 Mon Sep 17 00:00:00 2001 From: Rylan Polster Date: Mon, 15 Jul 2024 13:55:23 -0400 Subject: [PATCH 3/3] Remove redundant `context` block --- Library/Homebrew/test/cask/info_spec.rb | 54 ++++++++++++------------- 1 file changed, 26 insertions(+), 28 deletions(-) diff --git a/Library/Homebrew/test/cask/info_spec.rb b/Library/Homebrew/test/cask/info_spec.rb index d70dcce4db..d37557cc08 100644 --- a/Library/Homebrew/test/cask/info_spec.rb +++ b/Library/Homebrew/test/cask/info_spec.rb @@ -122,36 +122,34 @@ RSpec.describe Cask::Info, :cask do EOS end - context "when a Cask is installed" do - it "prints install information from tab" do - mktmpdir do |caskroom| - FileUtils.mkdir caskroom/"2.61" + it "prints install information for an installed Cask" do + mktmpdir do |caskroom| + FileUtils.mkdir caskroom/"2.61" - 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) + 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 + 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