Sha256: ba120b28a255455e51ed3e37272309e272cef8f4c63818e826349bcb45651098

Contents?: true

Size: 1.14 KB

Versions: 4

Compression:

Stored size: 1.14 KB

Contents

# encoding: utf-8

require "support/policies"

describe Attestor::Validations::Reporter do

  let(:object)     { double }
  let(:error)      { Attestor::InvalidError.new object, ["foo"] }
  let(:report)     { Attestor::Report }
  let(:test_class) { Class.new.send(:include, described_class) }

  subject { test_class.new }

  describe "#validate" do

    let(:result) { subject.validate object }

    context "when #validate! fails" do

      before do
        allow(subject).to receive(:validate!).with(object) { fail(error) }
      end

      it "returns an invalid report" do
        expect(result).to be_kind_of report
        expect(result.object).to eq object
        expect(result.error).not_to be_nil
        expect(result.messages).to eq error.messages
      end

    end # context

    context "when #validate! passes" do

      before { allow(subject).to receive(:validate!).with(object) }

      it "returns a valid report" do
        expect(result).to be_kind_of report
        expect(result.object).to eq object
        expect(result.error).to be_nil
      end

    end # context

  end # describe #validate

end # describe Attestor::Validations::Reporter

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
attestor-2.2.1 spec/tests/validations/reporter_spec.rb
attestor-2.2.0 spec/tests/validations/reporter_spec.rb
attestor-2.1.0 spec/tests/validations/reporter_spec.rb
attestor-2.0.0 spec/tests/validations/reporter_spec.rb