Sha256: b5bd331df085f9ee5ae435daabb3c7754f1c850e22bcc706583533f005ebff28
Contents?: true
Size: 1.65 KB
Versions: 1
Compression:
Stored size: 1.65 KB
Contents
# frozen_string_literal: true require 'rider_kick/matchers/use_case_result' RSpec.describe RiderKick::Matchers::UseCaseResult do describe '.call' do subject(:call) do described_class.call(result) do |matcher| matcher.success(&:to_s) matcher.failure { |failure_details| failure_details } end end context do let(:result) { Dry::Monads::Success('success!') } it { is_expected.to eq 'success!' } end context do let(:result) { Dry::Monads::Failure('failure!') } specify do expect(call).to eq RiderKick::Entities::FailureDetails.new( message: 'failure!', other_properties: {}, type: 'error' ) end end context do let(:result) { Dry::Monads::Failure(['failure 1', 'failure 2']) } specify do expect(call).to eq RiderKick::Entities::FailureDetails.new( message: 'failure 1, failure 2', other_properties: {}, type: 'error' ) end end context do let(:failure_details) do RiderKick::Entities::FailureDetails.new( message: 'failure!', other_properties: { a: :b }, type: 'unauthorized' ) end let(:result) { Dry::Monads::Failure(failure_details) } it { is_expected.to eq failure_details } end context do let(:result) { Dry::Monads::Failure(:no) } specify { expect { call }.to raise_error ArgumentError } end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rider-kick-0.0.1 | lib/rider_kick/matchers/use_case_result_spec.rb |