Sha256: beb25d91b8bfd0f0b2f466178ea70bd2a4140aae788e93b97a30a2f0c6b67453

Contents?: true

Size: 1.34 KB

Versions: 11

Compression:

Stored size: 1.34 KB

Contents

# frozen_string_literal: true

shared_examples 'a Zizia::Validator' do
  subject(:validator) { described_class.new(error_stream: error_stream) }
  let(:error_stream)  { [] }

  define :be_a_validator_error do # |expected|
    match { false } # { |actual| some_condition }
  end

  describe '#validate' do
    context 'without a parser' do
      it 'raises ArgumentError' do
        expect { validator.validate }.to raise_error ArgumentError
      end
    end

    it 'gives an empty error collection for a valid parser' do
      expect(validator.validate(parser: valid_parser)).not_to be_any if
        defined?(valid_parser)
    end

    context 'for an invalid parser' do
      it 'gives an non-empty error collection' do
        expect(validator.validate(parser: invalid_parser)).to be_any if
          defined?(invalid_parser)
      end

      it 'gives usable errors' do
        pending 'we need to clarify the error type and usage'

        validator.validate(parser: invalid_parser).each do |error|
          expect(error).to be_a_validator_error
        end
      end

      it 'writes errors to the error stream' do
        if defined?(invalid_parser)
          expect { validator.validate(parser: invalid_parser) }
            .to change { error_stream }
            .to include(an_instance_of(Zizia::Validator::Error))
        end
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
zizia-2.1.0.alpha.09 lib/zizia/spec/shared_examples/a_validator.rb
zizia-2.1.0.alpha.08 lib/zizia/spec/shared_examples/a_validator.rb
zizia-2.1.0.alpha.07 lib/zizia/spec/shared_examples/a_validator.rb
zizia-2.1.0.alpha.06 lib/zizia/spec/shared_examples/a_validator.rb
zizia-2.1.0.alpha.05 lib/zizia/spec/shared_examples/a_validator.rb
zizia-2.1.0.alpha.04 lib/zizia/spec/shared_examples/a_validator.rb
zizia-2.1.0.alpha.03 lib/zizia/spec/shared_examples/a_validator.rb
zizia-2.1.0.alpha.02 lib/zizia/spec/shared_examples/a_validator.rb
zizia-2.1.0.alpha.01 lib/zizia/spec/shared_examples/a_validator.rb
zizia-2.0.0.alpha.01 lib/zizia/spec/shared_examples/a_validator.rb
zizia-1.0.1 lib/zizia/spec/shared_examples/a_validator.rb