Sha256: 6e4233c094ea59c0df0747f9f118039504b9c3403a098dc1632532d401cd653f

Contents?: true

Size: 765 Bytes

Versions: 1

Compression:

Stored size: 765 Bytes

Contents

require 'spec_helper'

describe 'Wrap operation' do
  include_context 'users and tasks'

  specify 'defining a wrapped relation' do
    setup.relation(:users) do
      include ROM::RA

      def with_task
        wrap(join(tasks), task: [:title, :priority])
      end
    end

    users = rom.relations.users

    expect(users.with_task.to_a).to eql(
      [
        {
          name: "Joe",
          email: "joe@doe.org",
          task: { title: "be nice", priority: 1 }
        },
        {
          name: "Joe",
          email: "joe@doe.org",
          task: { title: "sleep well", priority: 2 }
        },
        {
          name: "Jane",
          email: "jane@doe.org",
          task: { title: "be cool", priority: 2 }
        }
      ]
    )
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rom-0.4.2 spec/integration/ra/wrap_spec.rb