Sha256: 7c7d3a21cefe1553d82db0094350a81aef243639e64e2bd464ca6670827a16bb
Contents?: true
Size: 1.15 KB
Versions: 3
Compression:
Stored size: 1.15 KB
Contents
require 'rom' require 'rom/memory' require 'rom/plugins/relation/view' RSpec.describe ROM::Plugins::Relation::View do subject(:relation) { relation_class.new([]) } let(:relation_class) do Class.new(ROM::Memory::Relation) do use :view view(:base, [:id, :name]) do self end view(:ids, [:id]) do self end view(:names, [:name]) do |id| self end end end describe '#attributes' do it 'returns base view attributes by default' do expect(relation.attributes).to eql([:id, :name]) end it 'returns attributes for a view' do expect(relation.ids.attributes).to eql([:id]) end it 'returns attributes for a view with args' do expect(relation.names(1).attributes).to eql([:name]) end it 'returns attributes for a curried view' do expect(relation.names.attributes).to eql([:name]) end it 'returns correct arity for a curried view' do expect(relation.names.arity).to be(1) end it 'returns explicitly set attributes' do expect(relation.with(attributes: [:foo, :bar]).attributes).to eql([:foo, :bar]) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
rom-2.0.2 | spec/unit/rom/plugins/relation/view_spec.rb |
rom-2.0.1 | spec/unit/rom/plugins/relation/view_spec.rb |
rom-2.0.0 | spec/unit/rom/plugins/relation/view_spec.rb |