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,37 +498,43 @@ 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"
^^^^^^^^^^^^^^^ `sha256` stanza out of order
version :latest version :latest
^^^^^^^^^^^^^^^ `version` stanza out of order
url "https://foo.brew.sh/foo-ventura.zip" url "https://foo.brew.sh/foo-ventura.zip"
end end
on_catalina do on_catalina do
sha256 "def456" sha256 "def456"
^^^^^^^^^^^^^^^ `sha256` stanza out of order
version "0.7" version "0.7"
^^^^^^^^^^^^^ `version` stanza out of order
url "https://foo.brew.sh/foo-catalina.zip" url "https://foo.brew.sh/foo-catalina.zip"
end end
on_mojave do on_mojave do
^^^^^^^^^^^^ `on_mojave` stanza out of order
version :latest version :latest
sha256 "ghi789" sha256 "ghi789"
url "https://foo.brew.sh/foo-mojave.zip" url "https://foo.brew.sh/foo-mojave.zip"
end end
on_big_sur do on_big_sur do
^^^^^^^^^^^^^ `on_big_sur` stanza out of order
sha256 "jkl012" sha256 "jkl012"
^^^^^^^^^^^^^^^ `sha256` stanza out of order
version :latest version :latest
^^^^^^^^^^^^^^^ `version` stanza out of order
url "https://foo.brew.sh/foo-big-sur.zip" url "https://foo.brew.sh/foo-big-sur.zip"
end end
end end
CASK CASK
end
let(:correct_source) do expect_correction <<~CASK
<<~CASK
cask "foo" do cask "foo" do
on_mojave do on_mojave do
version :latest version :latest
@ -556,7 +560,4 @@ describe RuboCop::Cop::Cask::StanzaOrder do
end end
CASK CASK
end end
include_examples "autocorrects source"
end
end end