module HamlLint::Spec::Matchers::ReportLint

Matcher to assert linter reports and their details

Public Instance Methods

extended_expectations(expected_line, expected_message, expected_severity) click to toggle source
# File lib/haml_lint/spec/matchers/report_lint.rb, line 59
def extended_expectations(expected_line, expected_message, expected_severity)
  (expected_line ? " on line #{expected_line}" : '') +
    (expected_message ? " with message '#{expected_message}'" : '') +
    (expected_severity ? " with severity '#{expected_severity}'" : '')
end
has_expected_line_lints?(linter, expected_line, count, expected_message, expected_severity) click to toggle source
# File lib/haml_lint/spec/matchers/report_lint.rb, line 81
def has_expected_line_lints?(linter,
                             expected_line,
                             count,
                             expected_message,
                             expected_severity)
  if count
    multiple_lints_match_line?(linter, expected_line, count)
  elsif expected_message
    lint_on_line_matches_message?(linter, expected_line, expected_message)
  elsif expected_severity
    lint_on_line_matches_severity?(linter, expected_line, expected_severity)
  else
    lint_lines(linter).include?(expected_line)
  end
end
has_lints?(linter, expected_line, count, expected_message, expected_severity) click to toggle source
# File lib/haml_lint/spec/matchers/report_lint.rb, line 65
def has_lints?(linter, expected_line, count, expected_message, expected_severity)
  if expected_line
    has_expected_line_lints?(linter,
                             expected_line,
                             count,
                             expected_message,
                             expected_severity)
  elsif count
    linter.lints.count == count
  elsif expected_message
    lint_messages_match?(linter, expected_message)
  else
    linter.lints.any?
  end
end
lint_lines(linter) click to toggle source
# File lib/haml_lint/spec/matchers/report_lint.rb, line 118
def lint_lines(linter)
  linter.lints.map(&:line)
end
lint_messages(linter) click to toggle source
# File lib/haml_lint/spec/matchers/report_lint.rb, line 122
def lint_messages(linter)
  linter.lints.map(&:message)
end
lint_messages_match?(linter, expected_message) click to toggle source
# File lib/haml_lint/spec/matchers/report_lint.rb, line 114
def lint_messages_match?(linter, expected_message)
  lint_messages(linter).all? { |message| message == expected_message }
end
lint_on_line_matches_message?(linter, expected_line, expected_message) click to toggle source
# File lib/haml_lint/spec/matchers/report_lint.rb, line 102
def lint_on_line_matches_message?(linter, expected_line, expected_message)
  linter
    .lints
    .any? { |lint| lint.line == expected_line && lint.message == expected_message }
end
lint_on_line_matches_severity?(linter, expected_line, expected_severity) click to toggle source
# File lib/haml_lint/spec/matchers/report_lint.rb, line 108
def lint_on_line_matches_severity?(linter, expected_line, expected_severity)
  linter
    .lints
    .any? { |lint| lint.line == expected_line && lint.severity == expected_severity }
end
multiple_lints_match_line?(linter, expected_line, count) click to toggle source
# File lib/haml_lint/spec/matchers/report_lint.rb, line 97
def multiple_lints_match_line?(linter, expected_line, count)
  linter.lints.count == count &&
    lint_lines(linter).all? { |line| line == expected_line }
end