Sha256: 49c0c018113185c7baf48d6ceb4f139ec83e00c358b15ea15c3b4a7b7cacf798

Contents?: true

Size: 1.03 KB

Versions: 3

Compression:

Stored size: 1.03 KB

Contents

require 'spec_helper'
require 'rom/memory'

describe ROM::Memory::Commands do
  let(:relation) do
    Class.new(ROM::Relation[:memory]) do
      schema do
        attribute :id, ROM::Memory::Types::Int
        attribute :name, ROM::Memory::Types::String
      end
    end.new(ROM::Memory::Dataset.new([]))
  end

  describe 'Create' do
    subject(:command) { ROM::Commands::Create[:memory].build(relation) }

    describe '#call' do
      it 'uses default input handler' do
        result = command.call([id: 1, name: 'Jane', haha: 'oops'])

        expect(result).to eql([{ id: 1, name: 'Jane' }])
      end
    end
  end

  describe 'Update' do
    subject(:command) { ROM::Commands::Update[:memory].build(relation) }

    before do
      relation.insert(id: 1, name: 'Jane')
    end

    describe '#call' do
      it 'uses default input handler' do
        result = command
          .new(relation.restrict(id: 1))
          .call(name: 'Jane Doe', haha: 'oops')

        expect(result).to eql([{ id: 1, name: 'Jane Doe' }])
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rom-2.0.2 spec/unit/rom/memory/commands_spec.rb
rom-2.0.1 spec/unit/rom/memory/commands_spec.rb
rom-2.0.0 spec/unit/rom/memory/commands_spec.rb