Sha256: 0e6452ce5a6429dd5b44f1a3f60af2403ee2426db4ce2631e11778f7c698c092

Contents?: true

Size: 1.05 KB

Versions: 1

Compression:

Stored size: 1.05 KB

Contents

require "spec_helper"
require "support/exception_matchers"

module Hexx
  describe RuntimeError do

    subject        { RuntimeError }
    let(:use_case) { Hexx::UseCase.new }

    it "inherits core RuntimeError" do
      expect(subject).to inherit ::RuntimeError
    end

    describe ".new" do

      it "requires Hexx::UseCase as an argument" do
        expect { subject.new use_case }.not_to raise_error
        expect { subject.new "" }.to raise_error
        expect { subject.new }.to raise_error
      end
    end

    describe "#messages" do

      it "returns use case's error messages" do
        allow(use_case)
          .to receive_message_chain(:errors, :messages, :values)
          .and_return :messages
        expect(subject.new(use_case).messages).to eq :messages
      end
    end

    describe "#message" do

      let!(:error) { subject.new use_case }
      before { allow(error).to receive(:messages).and_return %w(one two) }

      it "returns a proper text" do
        expect(error.message).to eq "Runtime error: one; two"
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
hexx-1.0.0 spec/hexx/exceptions/runtime_error_spec.rb