diff --git a/.haml-lint.yml b/.haml-lint.yml index 75139cb43dd..c0c0e57e0f2 100644 --- a/.haml-lint.yml +++ b/.haml-lint.yml @@ -8,8 +8,9 @@ exclude: - 'spec/**/*' - 'ee/spec/**/*' require: - - './haml_lint/linter/no_plain_nodes.rb' - './haml_lint/linter/documentation_links.rb' + - './haml_lint/linter/inline_javascript.rb' + - './haml_lint/linter/no_plain_nodes.rb' linters: AltText: diff --git a/haml_lint/inline_javascript.rb b/haml_lint/inline_javascript.rb deleted file mode 100644 index c87d77d7a4b..00000000000 --- a/haml_lint/inline_javascript.rb +++ /dev/null @@ -1,25 +0,0 @@ -# frozen_string_literal: true - -unless Rails.env.production? - require 'haml_lint/haml_visitor' - require 'haml_lint/linter' - require 'haml_lint/linter_registry' - - module HamlLint - class Linter::InlineJavaScript < Linter - include ::HamlLint::LinterRegistry - - 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)') - 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)') - end - end - end -end diff --git a/haml_lint/linter/inline_javascript.rb b/haml_lint/linter/inline_javascript.rb new file mode 100644 index 00000000000..f7672c98347 --- /dev/null +++ b/haml_lint/linter/inline_javascript.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +module HamlLint + 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, MSG) + end + + def visit_tag(node) + return unless node.tag_name == 'script' + + record_lint(node, MSG) + end + end + end +end diff --git a/lib/tasks/haml-lint.rake b/lib/tasks/haml-lint.rake index 71e84d3795f..29589571344 100644 --- a/lib/tasks/haml-lint.rake +++ b/lib/tasks/haml-lint.rake @@ -2,7 +2,6 @@ unless Rails.env.production? require 'haml_lint/rake_task' - require Rails.root.join('haml_lint/inline_javascript') HamlLint::RakeTask.new end diff --git a/spec/features/admin/admin_sees_background_migrations_spec.rb b/spec/features/admin/admin_sees_background_migrations_spec.rb index fcb5910b85e..d0d69187e63 100644 --- a/spec/features/admin/admin_sees_background_migrations_spec.rb +++ b/spec/features/admin/admin_sees_background_migrations_spec.rb @@ -133,6 +133,8 @@ RSpec.describe "Admin > Admin sees background migrations" do end it 'can change tabs and retain database param' do + skip_if_multiple_databases_not_setup + visit admin_background_migrations_path(database: 'ci') within '#content-body' do @@ -157,6 +159,8 @@ RSpec.describe "Admin > Admin sees background migrations" do describe 'selected database toggle', :js do context 'when multi database is not enabled' do before do + skip_if_multiple_databases_are_setup + allow(Gitlab::Database).to receive(:db_config_names).and_return(['main']) end @@ -169,6 +173,8 @@ RSpec.describe "Admin > Admin sees background migrations" do context 'when multi database is enabled' do before do + skip_if_multiple_databases_not_setup + allow(Gitlab::Database).to receive(:db_config_names).and_return(%w[main ci]) end diff --git a/spec/haml_lint/linter/documentation_links_spec.rb b/spec/haml_lint/linter/documentation_links_spec.rb index f2aab4304c1..49a720700da 100644 --- a/spec/haml_lint/linter/documentation_links_spec.rb +++ b/spec/haml_lint/linter/documentation_links_spec.rb @@ -1,9 +1,10 @@ # frozen_string_literal: true -require 'spec_helper' +require 'fast_spec_helper' require 'haml_lint' require 'haml_lint/spec' -require Rails.root.join('haml_lint/linter/documentation_links') + +require_relative '../../../haml_lint/linter/documentation_links' RSpec.describe HamlLint::Linter::DocumentationLinks do include_context 'linter' 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 00000000000..fb35bb68247 --- /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 diff --git a/spec/haml_lint/linter/no_plain_nodes_spec.rb b/spec/haml_lint/linter/no_plain_nodes_spec.rb index 08f7e6131cc..eeb0e4ea96f 100644 --- a/spec/haml_lint/linter/no_plain_nodes_spec.rb +++ b/spec/haml_lint/linter/no_plain_nodes_spec.rb @@ -1,9 +1,10 @@ # frozen_string_literal: true -require 'spec_helper' +require 'fast_spec_helper' require 'haml_lint' require 'haml_lint/spec' -require Rails.root.join('haml_lint/linter/no_plain_nodes') + +require_relative '../../../haml_lint/linter/no_plain_nodes' RSpec.describe HamlLint::Linter::NoPlainNodes do include_context 'linter'