Welcome to mirror list, hosted at ThFree Co, Russian Federation.

no_abusive_coercion_from_string_validator_spec.rb « abuse_validators « search « gitlab « lib « spec - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 76280e658678e41504591f8a8f24993cf7ea4787 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# frozen_string_literal: true

require 'spec_helper'

RSpec.describe Gitlab::Search::AbuseValidators::NoAbusiveCoercionFromStringValidator do
  subject do
    described_class.new({ attributes: { foo: :bar } })
  end

  let(:instance) { double(:instance) }
  let(:attribute) { :attribute }
  let(:validation_msg) { 'abusive coercion from string detected' }
  let(:validate) { subject.validate_each(instance, attribute, attribute_value) }

  using ::RSpec::Parameterized::TableSyntax

  where(:attribute_value, :valid?) do
    ['this is an arry']     | false
    { 'this': 'is a hash' } | false
    123                     | false
    456.78                  | false
    'now this is a string'  | true
  end

  with_them do
    it do
      if valid?
        expect(instance).not_to receive(:errors)
      else
        expect(instance).to receive_message_chain(:errors, :add).with(attribute, validation_msg)
        validate
      end
    end
  end
end