Sha256: 0e88eb8358a4b3605d74cb069547b92980235e29384ce795de82f6dde5eb4b3a

Contents?: true

Size: 1.73 KB

Versions: 16

Compression:

Stored size: 1.73 KB

Contents

require 'spec_helper'

describe Grape::Validations::AllOrNoneOfValidator do
  describe '#validate!' do
    let(:scope) do
      Struct.new(:opts) do
        def params(arg)
          arg
        end

        def required?; end
      end
    end
    let(:all_or_none_params) { [:beer, :wine, :grapefruit] }
    let(:validator) { described_class.new(all_or_none_params, {}, false, scope.new) }

    context 'when all restricted params are present' do
      let(:params) { { beer: true, wine: true, grapefruit: true } }

      it 'does not raise a validation exception' do
        expect(validator.validate!(params)).to eql params
      end

      context 'mixed with other params' do
        let(:mixed_params) { params.merge!(other: true, andanother: true) }

        it 'does not raise a validation exception' do
          expect(validator.validate!(mixed_params)).to eql mixed_params
        end
      end
    end

    context 'when none of the restricted params is selected' do
      let(:params) { { somethingelse: true } }

      it 'does not raise a validation exception' do
        expect(validator.validate!(params)).to eql params
      end
    end

    context 'when only a subset of restricted params are present' do
      let(:params) { { beer: true, grapefruit: true } }

      it 'raises a validation exception' do
        expect do
          validator.validate! params
        end.to raise_error(Grape::Exceptions::Validation)
      end
      context 'mixed with other params' do
        let(:mixed_params) { params.merge!(other: true, andanother: true) }

        it 'raise a validation exception' do
          expect do
            validator.validate! params
          end.to raise_error(Grape::Exceptions::Validation)
        end
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
grape-1.0.1 spec/grape/validations/validators/all_or_none_spec.rb
grape-1.0.0 spec/grape/validations/validators/all_or_none_spec.rb
grape-0.19.2 spec/grape/validations/validators/all_or_none_spec.rb
grape-0.19.1 spec/grape/validations/validators/all_or_none_spec.rb
grape-0.19.0 spec/grape/validations/validators/all_or_none_spec.rb
grape-0.18.0 spec/grape/validations/validators/all_or_none_spec.rb
grape-0.17.0 spec/grape/validations/validators/all_or_none_spec.rb
grape-0.16.2 spec/grape/validations/validators/all_or_none_spec.rb
grape-0.16.1 spec/grape/validations/validators/all_or_none_spec.rb
grape-0.15.0 spec/grape/validations/validators/all_or_none_spec.rb
grape-0.14.0 spec/grape/validations/validators/all_or_none_spec.rb
grape-0.13.0 spec/grape/validations/validators/all_or_none_spec.rb
grape-0.12.0 spec/grape/validations/validators/all_or_none_spec.rb
grape-0.11.0 spec/grape/validations/validators/all_or_none_spec.rb
grape-0.10.1 spec/grape/validations/validators/all_or_none_spec.rb
grape-0.10.0 spec/grape/validations/validators/all_or_none_spec.rb