From 20548c5fc27555a520d9b22de3e4af52c50d2335 Mon Sep 17 00:00:00 2001 From: Peter Leitzen <pleitzen@gitlab.com> Date: Wed, 4 May 2022 12:38:24 +0200 Subject: [PATCH] Add specs for HAML linter InlineJavaScript --- haml_lint/linter/inline_javascript.rb | 6 ++-- .../linter/inline_javascript_spec.rb | 31 +++++++++++++++++++ 2 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 spec/haml_lint/linter/inline_javascript_spec.rb diff --git a/haml_lint/linter/inline_javascript.rb b/haml_lint/linter/inline_javascript.rb index f9c186feae5a..f7672c983471 100644 --- a/haml_lint/linter/inline_javascript.rb +++ b/haml_lint/linter/inline_javascript.rb @@ -5,16 +5,18 @@ class Linter class InlineJavaScript < Linter include ::HamlLint::LinterRegistry + MSG = 'Inline JavaScript is discouraged (https://docs.gitlab.com/ee/development/gotchas.html#do-not-use-inline-javascript-in-views)' + def visit_filter(node) return unless node.filter_type == 'javascript' - record_lint(node, 'Inline JavaScript is discouraged (https://docs.gitlab.com/ee/development/gotchas.html#do-not-use-inline-javascript-in-views)') + record_lint(node, MSG) end def visit_tag(node) return unless node.tag_name == 'script' - record_lint(node, 'Inline JavaScript is discouraged (https://docs.gitlab.com/ee/development/gotchas.html#do-not-use-inline-javascript-in-views)') + record_lint(node, MSG) end end end diff --git a/spec/haml_lint/linter/inline_javascript_spec.rb b/spec/haml_lint/linter/inline_javascript_spec.rb new file mode 100644 index 000000000000..fb35bb682473 --- /dev/null +++ b/spec/haml_lint/linter/inline_javascript_spec.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +require 'fast_spec_helper' +require 'haml_lint' +require 'haml_lint/spec' +require 'rspec-parameterized' + +require_relative '../../../haml_lint/linter/inline_javascript' + +RSpec.describe HamlLint::Linter::InlineJavaScript do # rubocop:disable RSpec/FilePath + using RSpec::Parameterized::TableSyntax + + include_context 'linter' + + let(:message) { described_class::MSG } + + where(:haml, :should_report) do + '%script' | true + '%javascript' | false + ':javascript' | true + ':markdown' | false + end + + with_them do + if params[:should_report] + it { is_expected.to report_lint message: message } + else + it { is_expected.not_to report_lint } + end + end +end -- GitLab