Sha256: 0b53f84c39ff224b44335dd8e2ad00337478d2f90902ccbf988de83fa3a5ddec
Contents?: true
Size: 1.21 KB
Versions: 1
Compression:
Stored size: 1.21 KB
Contents
require 'spec_helper' describe 'Mapper definition DSL' do include_context 'users and tasks' let(:header) { mapper.header } describe 'folded relation mapper' do before do setup.relation(:tasks) do def with_users join(users) end end setup.relation(:users) do def with_tasks join(tasks) end end end let(:rom) { setup.finalize } let(:actual) do rom.relation(:users).with_tasks.map_with(:users).to_a end it 'groups all attributes and folds the first key' do setup.mappers do define(:users) do fold tasks: [:title, :priority] end end expect(actual).to eql [ { name: 'Joe', email: 'joe@doe.org', tasks: ['be nice', 'sleep well'] }, { name: 'Jane', email: 'jane@doe.org', tasks: ['be cool'] } ] end it 'is sensitive to the order of keys' do setup.mappers do define(:users) do fold priorities: [:priority, :title] end end expect(actual).to eql [ { name: 'Joe', email: 'joe@doe.org', priorities: [1, 2] }, { name: 'Jane', email: 'jane@doe.org', priorities: [2] } ] end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rom-0.7.1 | spec/integration/mappers/fold_spec.rb |