diff options
Diffstat (limited to 'spec/rubocop/cop/gitlab/json_spec.rb')
-rw-r--r-- | spec/rubocop/cop/gitlab/json_spec.rb | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/spec/rubocop/cop/gitlab/json_spec.rb b/spec/rubocop/cop/gitlab/json_spec.rb new file mode 100644 index 00000000000..d64f60c8583 --- /dev/null +++ b/spec/rubocop/cop/gitlab/json_spec.rb @@ -0,0 +1,39 @@ +# frozen_string_literal: true + +require 'spec_helper' +require 'rubocop' +require 'rubocop/rspec/support' +require_relative '../../../../rubocop/cop/gitlab/json' + +describe RuboCop::Cop::Gitlab::Json do + include CopHelper + + subject(:cop) { described_class.new } + + shared_examples('registering call offense') do |options| + let(:offending_lines) { options[:offending_lines] } + + it 'registers an offense when the class calls JSON' do + inspect_source(source) + + aggregate_failures do + expect(cop.offenses.size).to eq(offending_lines.size) + expect(cop.offenses.map(&:line)).to eq(offending_lines) + end + end + end + + context 'when JSON is called' do + it_behaves_like 'registering call offense', offending_lines: [3] do + let(:source) do + <<~RUBY + class Foo + def bar + JSON.parse('{ "foo": "bar" }') + end + end + RUBY + end + end + end +end |