Sha256: 56a9ce6b3cc181eaf243591d0d52ada5990dc4c2988ed1a383cc0d929dea5953

Contents?: true

Size: 731 Bytes

Versions: 7

Compression:

Stored size: 731 Bytes

Contents

RSpec.describe 'ROM repository with typed structs' do
  subject(:repo) do
    Class.new(ROM::Repository[:books]).new(rom)
  end

  include_context 'database'
  include_context 'seeds'

  before do
    configuration.relation(:books) do
      schema(infer: true)

      view(:index) do
        schema { project(:id, :title, :created_at) }
        relation { order(:title) }
      end
    end

    rom.relations[:books].insert(title: 'Hello World', created_at: Time.now)
  end

  it 'loads typed structs' do
    book = repo.books.index.first

    expect(book).to be_kind_of(Dry::Struct)

    expect(book.id).to be_kind_of(Integer)
    expect(book.title).to eql('Hello World')
    expect(book.created_at).to be_kind_of(Time)
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
rom-repository-1.0.1 spec/integration/typed_structs_spec.rb
rom-repository-1.0.0 spec/integration/typed_structs_spec.rb
rom-repository-1.0.0.rc2 spec/integration/typed_structs_spec.rb
rom-repository-1.0.0.rc1 spec/integration/typed_structs_spec.rb
rom-repository-1.0.0.beta3 spec/integration/typed_structs_spec.rb
rom-repository-1.0.0.beta2 spec/integration/typed_structs_spec.rb
rom-repository-1.0.0.beta1 spec/integration/typed_structs_spec.rb