From 6b4b923b44a156085bb9a16ce3328003da93ad88 Mon Sep 17 00:00:00 2001 From: Issy Long Date: Sat, 18 Mar 2023 13:19:20 +0000 Subject: [PATCH 1/2] test/cask: Fix "System Settings" caveats for (non-)Ventura OSes - "System Preferences" was updated to be "System Settings" in macOS Ventura. This naming was updated in our caveats generator in PR 14997. - This test was failing for me locally (on Ventura) because it was hardcoded to expect `System Preferences => Security & Privacy`, but getting `System Settings => Privacy & Security`. - This is not the most important thing in the world, we can probably live with the failing test, but I thought I'd try to fix it anyway. --- Library/Homebrew/test/cask/cask_spec.rb | 10 +- .../cask/everything-ventura-caveats.json | 99 +++++++++++++++++++ 2 files changed, 106 insertions(+), 3 deletions(-) create mode 100644 Library/Homebrew/test/support/fixtures/cask/everything-ventura-caveats.json diff --git a/Library/Homebrew/test/cask/cask_spec.rb b/Library/Homebrew/test/cask/cask_spec.rb index 76cce17474..5df166a0a8 100644 --- a/Library/Homebrew/test/cask/cask_spec.rb +++ b/Library/Homebrew/test/cask/cask_spec.rb @@ -217,15 +217,19 @@ describe Cask::Cask, :cask do end describe "#to_h" do - let(:json_file) { "#{TEST_FIXTURE_DIR}/cask/everything.json" } - let(:expected_json) { File.read(json_file).strip } + let(:expected_json) { File.read("#{TEST_FIXTURE_DIR}/cask/everything.json").strip } + let(:expected_json_ventura) { File.read("#{TEST_FIXTURE_DIR}/cask/everything-ventura-caveats.json").strip } context "when loaded from cask file" do it "returns expected hash" do hash = Cask::CaskLoader.load("everything").to_h expect(hash).to be_a(Hash) - expect(JSON.pretty_generate(hash)).to eq(expected_json) + if MacOS.version >= :ventura + expect(JSON.pretty_generate(hash)).to eq(expected_json_ventura) + else + expect(JSON.pretty_generate(hash)).to eq(expected_json) + end end end diff --git a/Library/Homebrew/test/support/fixtures/cask/everything-ventura-caveats.json b/Library/Homebrew/test/support/fixtures/cask/everything-ventura-caveats.json new file mode 100644 index 0000000000..4accb46a89 --- /dev/null +++ b/Library/Homebrew/test/support/fixtures/cask/everything-ventura-caveats.json @@ -0,0 +1,99 @@ +{ + "token": "everything", + "full_token": "everything", + "tap": "homebrew/cask", + "name": [ + "Everything" + ], + "desc": "Little bit of everything", + "homepage": "https://www.everything.app/", + "url": "https://cachefly.everything.app/releases/Everything_1.2.3.zip", + "url_specs": { + "cookies": { + "ALL": "1234" + }, + "user_agent": ":fake" + }, + "appcast": null, + "version": "1.2.3", + "versions": { + }, + "installed": null, + "outdated": false, + "sha256": "c64c05bdc0be845505d6e55e69e696a7f50d40846e76155f0c85d5ff5e7bbb84", + "artifacts": [ + { + "uninstall": [ + { + "launchctl": "com.every.thing.agent", + "delete": [ + "/Library/EverythingHelperTools" + ], + "kext": "com.every.thing.driver", + "signal": [ + [ + "TERM", + "com.every.thing.controller1" + ], + [ + "TERM", + "com.every.thing.bin" + ] + ] + } + ] + }, + { + "installer": [ + { + "script": { + "executable": "~/just/another/path/install.sh", + "args": [ + "--mode=silent" + ], + "sudo": true, + "print_stderr": false + } + } + ] + }, + { + "app": [ + "Everything.app" + ] + }, + { + "zap": [ + { + "trash": [ + "~/.everything", + "~/Library/Everything" + ] + } + ] + } + ], + "caveats": "Installing everything might take a while...\n\neverything requires a kernel extension to work.\nIf the installation fails, retry after you enable it in:\n System Settings → Privacy & Security\n\nFor more information, refer to vendor documentation or this Apple Technical Note:\n https://developer.apple.com/library/content/technotes/tn2459/_index.html\n", + "depends_on": { + "cask": [ + "something" + ] + }, + "conflicts_with": { + "formula": [ + "nothing" + ] + }, + "container": { + "type": "naked" + }, + "auto_updates": true, + "tap_git_head": null, + "languages": [ + "en", + "eo" + ], + "ruby_source_checksum": { + "sha256": "b2707d1952f02c3fa566b7ad2a707a847a959d36f51d3dee642dbe5deec12f27" + } +} From 865e99c6111799853e46401b66604ffb9d68ca5a Mon Sep 17 00:00:00 2001 From: Issy Long Date: Sat, 18 Mar 2023 15:16:15 +0000 Subject: [PATCH 2/2] test/cask: Rename 'expected_json_ventura' since it's >= Ventura - Let's actually show in the fixtures JSON filename what's changed between the two. --- Library/Homebrew/test/cask/cask_spec.rb | 6 ++++-- ...-caveats.json => everything-systemsettings-caveats.json} | 0 2 files changed, 4 insertions(+), 2 deletions(-) rename Library/Homebrew/test/support/fixtures/cask/{everything-ventura-caveats.json => everything-systemsettings-caveats.json} (100%) diff --git a/Library/Homebrew/test/cask/cask_spec.rb b/Library/Homebrew/test/cask/cask_spec.rb index 5df166a0a8..ddc581c730 100644 --- a/Library/Homebrew/test/cask/cask_spec.rb +++ b/Library/Homebrew/test/cask/cask_spec.rb @@ -218,7 +218,9 @@ describe Cask::Cask, :cask do describe "#to_h" do let(:expected_json) { File.read("#{TEST_FIXTURE_DIR}/cask/everything.json").strip } - let(:expected_json_ventura) { File.read("#{TEST_FIXTURE_DIR}/cask/everything-ventura-caveats.json").strip } + let(:expected_json_after_ventura) do + File.read("#{TEST_FIXTURE_DIR}/cask/everything-systemsettings-caveats.json").strip + end context "when loaded from cask file" do it "returns expected hash" do @@ -226,7 +228,7 @@ describe Cask::Cask, :cask do expect(hash).to be_a(Hash) if MacOS.version >= :ventura - expect(JSON.pretty_generate(hash)).to eq(expected_json_ventura) + expect(JSON.pretty_generate(hash)).to eq(expected_json_after_ventura) else expect(JSON.pretty_generate(hash)).to eq(expected_json) end diff --git a/Library/Homebrew/test/support/fixtures/cask/everything-ventura-caveats.json b/Library/Homebrew/test/support/fixtures/cask/everything-systemsettings-caveats.json similarity index 100% rename from Library/Homebrew/test/support/fixtures/cask/everything-ventura-caveats.json rename to Library/Homebrew/test/support/fixtures/cask/everything-systemsettings-caveats.json