spec/integration/ra/join_spec.rb in rom-0.3.0 vs spec/integration/ra/join_spec.rb in rom-0.3.1
- old
+ new
@@ -1,23 +1,45 @@
require "spec_helper"
describe 'Join operation' do
include_context 'users and tasks'
- specify 'defining a joined relation' do
+ specify 'defining a joined one-to-many relation' do
setup.relation(:users) do
def with_tasks
in_memory { join(tasks) }
end
end
+ setup.relation(:tasks)
+
users = rom.relations.users
expect(users.with_tasks.to_a).to eql(
[
{ name: 'Joe', email: 'joe@doe.org', title: 'be nice', priority: 1 },
{ name: 'Joe', email: 'joe@doe.org', title: 'sleep well', priority: 2 },
{ name: 'Jane', email: 'jane@doe.org', title: 'be cool', priority: 2 }
+ ]
+ )
+ end
+
+ specify 'defining a joined many-to-one relation' do
+ setup.relation(:users)
+
+ setup.relation(:tasks) do
+ def with_user
+ in_memory { join(users) }
+ end
+ end
+
+ tasks = rom.relations.tasks
+
+ expect(tasks.with_user.to_a).to eql(
+ [
+ { title: 'be nice', priority: 1, name: 'Joe', email: 'joe@doe.org' },
+ { title: 'sleep well', priority: 2, name: 'Joe', email: 'joe@doe.org' },
+ { title: 'be cool', priority: 2, name: 'Jane', email: 'jane@doe.org' }
]
)
end
end