Tweak tests.

This commit is contained in:
Markus Reiter 2023-05-07 10:04:28 +02:00
parent ce8788e5bc
commit 1df501b0ac
No known key found for this signature in database
GPG Key ID: 245293B51702655B
3 changed files with 80 additions and 73 deletions

View File

@ -42,6 +42,12 @@ module RuboCop
end end
end end
def on_new_investigation
super
ignored_nodes.clear
end
private private
def sort_stanzas(stanzas) def sort_stanzas(stanzas)

View File

@ -27,11 +27,11 @@ module CaskCop
offenses = inspect_source(source) offenses = inspect_source(source)
expect(offenses.size).to eq(expected_offenses.size) expect(offenses.size).to eq(expected_offenses.size)
expected_offenses.zip(offenses).each do |expected, actual| expected_offenses.zip(offenses).each do |expected, actual|
expect_offense(expected, actual) expect_offense2(expected, actual)
end end
end end
def expect_offense(expected, actual) def expect_offense2(expected, actual)
expect(actual.message).to eq(expected[:message]) expect(actual.message).to eq(expected[:message])
expect(actual.severity).to eq(expected[:severity]) expect(actual.severity).to eq(expected[:severity])
expect(actual.line).to eq(expected[:line]) expect(actual.line).to eq(expected[:line])

View File

@ -3,11 +3,9 @@
require "rubocops/rubocop-cask" require "rubocops/rubocop-cask"
require "test/rubocops/cask/shared_examples/cask_cop" require "test/rubocops/cask/shared_examples/cask_cop"
describe RuboCop::Cop::Cask::StanzaOrder do describe RuboCop::Cop::Cask::StanzaOrder, :config do
include CaskCop include CaskCop
subject(:cop) { described_class.new }
context "when there is only one stanza" do context "when there is only one stanza" do
let(:source) do let(:source) do
<<~CASK <<~CASK
@ -55,13 +53,13 @@ describe RuboCop::Cop::Cask::StanzaOrder do
end end
let(:expected_offenses) do let(:expected_offenses) do
[{ [{
message: "Cask/StanzaOrder: `sha256` stanza out of order", message: "`sha256` stanza out of order",
severity: :convention, severity: :convention,
line: 2, line: 2,
column: 2, column: 2,
source: "sha256 :no_check", source: "sha256 :no_check",
}, { }, {
message: "Cask/StanzaOrder: `version` stanza out of order", message: "`version` stanza out of order",
severity: :convention, severity: :convention,
line: 3, line: 3,
column: 2, column: 2,
@ -95,19 +93,19 @@ describe RuboCop::Cop::Cask::StanzaOrder do
end end
let(:expected_offenses) do let(:expected_offenses) do
[{ [{
message: "Cask/StanzaOrder: `version` stanza out of order", message: "`version` stanza out of order",
severity: :convention, severity: :convention,
line: 2, line: 2,
column: 2, column: 2,
source: "version :latest", source: "version :latest",
}, { }, {
message: "Cask/StanzaOrder: `sha256` stanza out of order", message: "`sha256` stanza out of order",
severity: :convention, severity: :convention,
line: 3, line: 3,
column: 2, column: 2,
source: "sha256 :no_check", source: "sha256 :no_check",
}, { }, {
message: "Cask/StanzaOrder: `arch` stanza out of order", message: "`arch` stanza out of order",
severity: :convention, severity: :convention,
line: 4, line: 4,
column: 2, column: 2,
@ -143,13 +141,13 @@ describe RuboCop::Cop::Cask::StanzaOrder do
end end
let(:expected_offenses) do let(:expected_offenses) do
[{ [{
message: "Cask/StanzaOrder: `sha256` stanza out of order", message: "`sha256` stanza out of order",
severity: :convention, severity: :convention,
line: 3, line: 3,
column: 2, column: 2,
source: "sha256 :no_check", source: "sha256 :no_check",
}, { }, {
message: "Cask/StanzaOrder: `on_arch_conditional` stanza out of order", message: "`on_arch_conditional` stanza out of order",
severity: :convention, severity: :convention,
line: 5, line: 5,
column: 2, column: 2,
@ -185,13 +183,13 @@ describe RuboCop::Cop::Cask::StanzaOrder do
end end
let(:expected_offenses) do let(:expected_offenses) do
[{ [{
message: "Cask/StanzaOrder: `on_arch_conditional` stanza out of order", message: "`on_arch_conditional` stanza out of order",
severity: :convention, severity: :convention,
line: 2, line: 2,
column: 2, column: 2,
source: 'folder = on_arch_conditional arm: "darwin-arm64", intel: "darwin"', source: 'folder = on_arch_conditional arm: "darwin-arm64", intel: "darwin"',
}, { }, {
message: "Cask/StanzaOrder: `arch` stanza out of order", message: "`arch` stanza out of order",
severity: :convention, severity: :convention,
line: 3, line: 3,
column: 2, column: 2,
@ -231,26 +229,26 @@ describe RuboCop::Cop::Cask::StanzaOrder do
end end
let(:expected_offenses) do let(:expected_offenses) do
[{ [{
message: "Cask/StanzaOrder: `url` stanza out of order", message: "`url` stanza out of order",
severity: :convention, severity: :convention,
line: 2, line: 2,
column: 2, column: 2,
source: "url 'https://foo.brew.sh/foo.zip'", source: "url 'https://foo.brew.sh/foo.zip'",
}, { }, {
message: "Cask/StanzaOrder: `uninstall` stanza out of order", message: "`uninstall` stanza out of order",
severity: :convention, severity: :convention,
line: 3, line: 3,
column: 2, column: 2,
source: "uninstall :quit => 'com.example.foo'," \ source: "uninstall :quit => 'com.example.foo'," \
"\n :kext => 'com.example.foo.kext'", "\n :kext => 'com.example.foo.kext'",
}, { }, {
message: "Cask/StanzaOrder: `version` stanza out of order", message: "`version` stanza out of order",
severity: :convention, severity: :convention,
line: 5, line: 5,
column: 2, column: 2,
source: "version :latest", source: "version :latest",
}, { }, {
message: "Cask/StanzaOrder: `sha256` stanza out of order", message: "`sha256` stanza out of order",
severity: :convention, severity: :convention,
line: 7, line: 7,
column: 2, column: 2,
@ -500,63 +498,66 @@ describe RuboCop::Cop::Cask::StanzaOrder do
include_examples "autocorrects source" include_examples "autocorrects source"
end end
context "when the `on_os` stanzas and their contents are out of order" do it "registers an offense when `on_os` stanzas and their contents are out of order" do
let(:source) do expect_offense <<~CASK
<<~CASK cask "foo" do
cask "foo" do on_ventura do
on_ventura do ^^^^^^^^^^^^^ `on_ventura` stanza out of order
sha256 "abc123" sha256 "abc123"
version :latest ^^^^^^^^^^^^^^^ `sha256` stanza out of order
url "https://foo.brew.sh/foo-ventura.zip" version :latest
end ^^^^^^^^^^^^^^^ `version` stanza out of order
on_catalina do url "https://foo.brew.sh/foo-ventura.zip"
sha256 "def456"
version "0.7"
url "https://foo.brew.sh/foo-catalina.zip"
end
on_mojave do
version :latest
sha256 "ghi789"
url "https://foo.brew.sh/foo-mojave.zip"
end
on_big_sur do
sha256 "jkl012"
version :latest
url "https://foo.brew.sh/foo-big-sur.zip"
end
end end
CASK on_catalina do
end sha256 "def456"
^^^^^^^^^^^^^^^ `sha256` stanza out of order
let(:correct_source) do version "0.7"
<<~CASK ^^^^^^^^^^^^^ `version` stanza out of order
cask "foo" do url "https://foo.brew.sh/foo-catalina.zip"
on_mojave do
version :latest
sha256 "ghi789"
url "https://foo.brew.sh/foo-mojave.zip"
end
on_catalina do
version "0.7"
sha256 "def456"
url "https://foo.brew.sh/foo-catalina.zip"
end
on_big_sur do
version :latest
sha256 "jkl012"
url "https://foo.brew.sh/foo-big-sur.zip"
end
on_ventura do
version :latest
sha256 "abc123"
url "https://foo.brew.sh/foo-ventura.zip"
end
end end
CASK on_mojave do
end ^^^^^^^^^^^^ `on_mojave` stanza out of order
version :latest
sha256 "ghi789"
url "https://foo.brew.sh/foo-mojave.zip"
end
on_big_sur do
^^^^^^^^^^^^^ `on_big_sur` stanza out of order
sha256 "jkl012"
^^^^^^^^^^^^^^^ `sha256` stanza out of order
version :latest
^^^^^^^^^^^^^^^ `version` stanza out of order
include_examples "autocorrects source" url "https://foo.brew.sh/foo-big-sur.zip"
end
end
CASK
expect_correction <<~CASK
cask "foo" do
on_mojave do
version :latest
sha256 "ghi789"
url "https://foo.brew.sh/foo-mojave.zip"
end
on_catalina do
version "0.7"
sha256 "def456"
url "https://foo.brew.sh/foo-catalina.zip"
end
on_big_sur do
version :latest
sha256 "jkl012"
url "https://foo.brew.sh/foo-big-sur.zip"
end
on_ventura do
version :latest
sha256 "abc123"
url "https://foo.brew.sh/foo-ventura.zip"
end
end
CASK
end end
end end