Sha256: 6673b0e1302269bf06e420d93fe2db462ba56afd987d05536c61e835e806fb2e

Contents?: true

Size: 1.13 KB

Versions: 3

Compression:

Stored size: 1.13 KB

Contents

package_require("ree_actions/dsl")

RSpec.describe ReeActions::DSL, type: [:autoclean] do
  before do
    Ree.enable_irb_mode
  end

  after do
    Ree.disable_irb_mode
  end

  it {
    module ReeActionsTest
      include Ree::PackageDSL

      package do
        depends_on :ree_mapper
      end

      class TestAction
        include ReeActions::DSL

        action :test_action

        ActionCaster = build_mapper.use(:cast) do
          integer :user_id
        end

        contract Any, ActionCaster.dto(:cast) => Integer
        def call(user_access, attrs)
          attrs[:user_id]
        end
      end
    end

    result = ReeActionsTest::TestAction.new.call('user_access', {user_id: 1})
    expect(result).to eq(1)
  }

  it {
    module ReeActionsTest
      include Ree::PackageDSL

      package do
      end

      class TestAction2
        include ReeActions::DSL

        action :test_action2

        contract Any, Hash => Integer
        def call(user_access, attrs)
          attrs[:user_id]
        end
      end
    end

    result = ReeActionsTest::TestAction2.new.call('user_access', {user_id: 1})
    expect(result).to eq(1)
  }
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ree_lib-1.0.42 lib/ree_lib/packages/ree_actions/spec/ree_actions/dsl_spec.rb
ree_lib-1.0.41 lib/ree_lib/packages/ree_actions/spec/ree_actions/dsl_spec.rb
ree_lib-1.0.40 lib/ree_lib/packages/ree_actions/spec/ree_actions/dsl_spec.rb