diff --git a/Library/Homebrew/test/rubocops/cask/no_overrides_spec.rb b/Library/Homebrew/test/rubocops/cask/no_overrides_spec.rb index 4cbfc9d765..cd1dc3c436 100644 --- a/Library/Homebrew/test/rubocops/cask/no_overrides_spec.rb +++ b/Library/Homebrew/test/rubocops/cask/no_overrides_spec.rb @@ -59,6 +59,47 @@ describe RuboCop::Cop::Cask::NoOverrides do include_examples "does not report any offenses" end + context "when there are multiple differences between the `on_*` blocks" do + let(:source) do + <<~CASK + cask "foo" do + version "1.2.3" + sha256 "aaa" + url "https://brew.sh/foo-2.3.4.dmg" + + on_big_sur :or_older do + sha256 "bbb" + url "https://brew.sh/legacy/foo-2.3.4.dmg" + end + end + CASK + end + + let(:expected_offenses) do + [{ + message: <<~EOS, + Do not use a top-level `sha256` stanza as the default. Add it to an `on_{system}` block instead. + Use `:or_older` or `:or_newer` to specify a range of macOS versions. + EOS + severity: :convention, + line: 3, + column: 2, + source: "sha256 \"aaa\"", + }, { + message: <<~EOS, + Do not use a top-level `url` stanza as the default. Add it to an `on_{system}` block instead. + Use `:or_older` or `:or_newer` to specify a range of macOS versions. + EOS + severity: :convention, + line: 4, + column: 2, + source: "url \"https://brew.sh/foo-2.3.4.dmg\"", + }] + end + + include_examples "reports offenses" + end + context "when there are top-level standalone stanzas" do let(:source) do <<~CASK