Sha256: b9481a5c6c36e23f4466dc87f7a06a970db65c40c3a42a3aa8adc124bf8e5c63

Contents?: true

Size: 783 Bytes

Versions: 3

Compression:

Stored size: 783 Bytes

Contents

require 'spec_helper'

describe ROM::Relation do
  subject(:relation) { ROM::Relation.new(dataset, [:id, :name]) }

  let(:dataset) { ROM::Adapter::Memory::Dataset.new([jane, joe]) }

  let(:jane) { { id: 1, name: 'Jane' } }
  let(:joe) { { id: 2, name: 'Joe' } }

  describe "#header" do
    it "return's duplicated and frozen dataset header" do
      expect(relation.header).to be_frozen
      expect(relation.header).not_to be(dataset.header)
    end
  end

  describe "#each" do
    it "yields all objects" do
      result = []

      relation.each do |user|
        result << user
      end

      expect(result).to eql([jane, joe])
    end

    it "returns an enumerator if block is not provided" do
      expect(relation.each).to be_instance_of(Enumerator)
    end
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rom-0.4.0 spec/unit/rom/relation_spec.rb
rom-0.3.1 spec/unit/rom/relation_spec.rb
rom-0.3.0 spec/unit/rom/relation_spec.rb