Sha256: 148c28f0a1f7803f9da6f6e5f340525e96adfb3aa530cf11cdf58283ce62f345
Contents?: true
Size: 829 Bytes
Versions: 2
Compression:
Stored size: 829 Bytes
Contents
RSpec.describe 'struct builder', '#call' do subject(:builder) { ROM::Repository::StructBuilder.new } let(:input) { [:users, [:header, [[:attribute, :id], [:attribute, :name]]]] } before { builder[*input] } it 'generates a struct for a given relation name and columns' do struct = builder.class.cache[input.hash] user = struct.new(id: 1, name: 'Jane') expect(user.id).to be(1) expect(user.name).to eql('Jane') expect(user[:id]).to be(1) expect(user[:name]).to eql('Jane') expect(Hash[user]).to eql(id: 1, name: 'Jane') expect(user.inspect).to eql('#<ROM::Struct[User] id=1 name="Jane">') expect(user.to_s).to match(/\A#<ROM::Struct\[User\]:0x[0-9a-f]+>\z/) end it 'stores struct in the cache' do expect(builder.class.cache[input.hash]).to be(builder[*input]) end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rom-repository-0.3.1 | spec/unit/struct_builder_spec.rb |
rom-repository-0.3.0 | spec/unit/struct_builder_spec.rb |