Sha256: 8eef8ecaee02aa239c6487af53b8ff5af216225f400ca98bf3cbd610ce5c8463

Contents?: true

Size: 1017 Bytes

Versions: 2

Compression:

Stored size: 1017 Bytes

Contents

# frozen_string_literal: true

module LightServiceExt
  RSpec.describe ApplicationOrganizer do
    let(:subject_class) do
      Class.new(described_class) do
        class << self
          FakeAction = Class.new do
            extend LightService::Action

            expects :input

            executed do |context|
              context.dig(:input, :some_proc).call
            end
          end

          def steps
            [FakeAction]
          end
        end
      end
    end

    let(:input) { { some_proc: proc {} } }

    it 'adds inputted data as input key value pair' do
      ctx = subject_class.call(input)

      expect(ctx.keys).to match_array(%i[api_responses errors input params allow_raise_on_failure
                                         successful_actions])
      expect(ctx[:input]).to eql(input)
    end

    it 'calls underlying action' do
      expect do
        subject_class.call(some_proc: proc { raise 'error' })
      end.to raise_error RuntimeError, 'error'
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
light-service-ext-0.1.1 spec/light_service_ext/application_organizer_spec.rb
light-service-ext-0.1.0 spec/light_service_ext/application_organizer_spec.rb