2020-04-15 03:21:07 +01:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
require "style"
|
|
|
|
|
2024-02-18 15:11:11 -08:00
|
|
|
RSpec.describe Homebrew::Style do
|
2020-04-15 03:21:07 +01:00
|
|
|
around do |example|
|
|
|
|
FileUtils.ln_s HOMEBREW_LIBRARY_PATH, HOMEBREW_LIBRARY/"Homebrew"
|
|
|
|
FileUtils.ln_s HOMEBREW_LIBRARY_PATH.parent/".rubocop.yml", HOMEBREW_LIBRARY/".rubocop.yml"
|
|
|
|
|
|
|
|
example.run
|
|
|
|
ensure
|
|
|
|
FileUtils.rm_f HOMEBREW_LIBRARY/"Homebrew"
|
|
|
|
FileUtils.rm_f HOMEBREW_LIBRARY/".rubocop.yml"
|
|
|
|
end
|
|
|
|
|
|
|
|
before do
|
|
|
|
allow(Homebrew).to receive(:install_bundler_gems!)
|
|
|
|
end
|
|
|
|
|
|
|
|
describe ".check_style_json" do
|
|
|
|
let(:dir) { mktmpdir }
|
|
|
|
|
2020-09-01 20:07:21 +02:00
|
|
|
it "returns offenses when RuboCop reports offenses" do
|
2020-04-15 03:21:07 +01:00
|
|
|
formula = dir/"my-formula.rb"
|
|
|
|
|
2023-02-10 08:59:51 +00:00
|
|
|
formula.write <<~EOS
|
2020-04-15 03:21:07 +01:00
|
|
|
class MyFormula < Formula
|
|
|
|
|
|
|
|
end
|
|
|
|
EOS
|
|
|
|
|
2020-09-01 20:07:21 +02:00
|
|
|
style_offenses = described_class.check_style_json([formula])
|
2020-04-15 03:21:07 +01:00
|
|
|
|
2020-09-01 20:07:21 +02:00
|
|
|
expect(style_offenses.for_path(formula.realpath).map(&:message))
|
2020-04-15 03:21:07 +01:00
|
|
|
.to include("Extra empty line detected at class body beginning.")
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
describe ".check_style_and_print" do
|
|
|
|
let(:dir) { mktmpdir }
|
|
|
|
|
2023-02-26 14:50:34 +00:00
|
|
|
it "returns true (success) for conforming file with only audit-level violations" do
|
2020-04-15 03:21:07 +01:00
|
|
|
# This file is known to use non-rocket hashes and other things that trigger audit,
|
|
|
|
# but not regular, cop violations
|
|
|
|
target_file = HOMEBREW_LIBRARY_PATH/"utils.rb"
|
|
|
|
|
2020-09-01 20:07:21 +02:00
|
|
|
style_result = described_class.check_style_and_print([target_file])
|
2020-04-15 03:21:07 +01:00
|
|
|
|
2022-03-01 00:02:36 +00:00
|
|
|
expect(style_result).to be true
|
2020-04-15 03:21:07 +01:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|