From bf18f3295b550c564086efd0a32d9a25435ce216 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Thu, 20 Oct 2022 12:10:43 +0000 Subject: Add latest changes from gitlab-org/gitlab@master --- spec/rubocop/cop/gitlab/json_spec.rb | 45 ++++++++++++++++++++++++++++++++---- 1 file changed, 41 insertions(+), 4 deletions(-) (limited to 'spec/rubocop') diff --git a/spec/rubocop/cop/gitlab/json_spec.rb b/spec/rubocop/cop/gitlab/json_spec.rb index e4ec107747d..bf8a250b55c 100644 --- a/spec/rubocop/cop/gitlab/json_spec.rb +++ b/spec/rubocop/cop/gitlab/json_spec.rb @@ -5,12 +5,20 @@ require_relative '../../../../rubocop/cop/gitlab/json' RSpec.describe RuboCop::Cop::Gitlab::Json do context 'when ::JSON is called' do - it 'registers an offense' do + it 'registers an offense and autocorrects' do expect_offense(<<~RUBY) class Foo def bar JSON.parse('{ "foo": "bar" }') - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Avoid calling `JSON` directly. [...] + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Prefer `Gitlab::Json` over calling `JSON` or `to_json` directly. [...] + end + end + RUBY + + expect_correction(<<~RUBY) + class Foo + def bar + Gitlab::Json.parse('{ "foo": "bar" }') end end RUBY @@ -18,12 +26,41 @@ RSpec.describe RuboCop::Cop::Gitlab::Json do end context 'when ActiveSupport::JSON is called' do - it 'registers an offense' do + it 'registers an offense and autocorrects' do expect_offense(<<~RUBY) class Foo def bar ActiveSupport::JSON.parse('{ "foo": "bar" }') - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Avoid calling `JSON` directly. [...] + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Prefer `Gitlab::Json` over calling `JSON` or `to_json` directly. [...] + end + end + RUBY + + expect_correction(<<~RUBY) + class Foo + def bar + Gitlab::Json.parse('{ "foo": "bar" }') + end + end + RUBY + end + end + + context 'when .to_json is called' do + it 'registers an offense and autocorrects' do + expect_offense(<<~RUBY) + class Foo + def bar + { foo: "bar" }.to_json + ^^^^^^^^^^^^^^^^^^^^^^ Prefer `Gitlab::Json` over calling `JSON` or `to_json` directly. [...] + end + end + RUBY + + expect_correction(<<~RUBY) + class Foo + def bar + Gitlab::Json.generate({ foo: "bar" }) end end RUBY -- cgit v1.2.1