Sha256: f8f1605160a20aaebe187dbeaa720d57d723714d565eef3bc18f1b0b0d6829a2

Contents?: true

Size: 1.2 KB

Versions: 2

Compression:

Stored size: 1.2 KB

Contents

require 'spec_helper'

describe MemoryModel::Base do

  subject(:base) { MemoryModel::Base }

  it_should_behave_like "ActiveModel" do
    let(:model) do
      model = stub_const 'MyModel', Class.new(subject)
      model.new
    end
  end

  describe '.new' do
    it 'should raise an error' do
      expect { base.new }.to raise_error MemoryModel::InvalidCollectionError
    end
  end

  describe '.inherited' do
    subject(:model) { Class.new base }

    it "should add a new collection to the subclass" do
      model.send(:collection).should be_a MemoryModel::Collection
    end

    it 'should have a field set' do
      model.fields.should be_a MemoryModel::Base::Fields::FieldSet
    end
  end

  context "when inherited" do
    let(:model) do
      Class.new(base) do
        field :foo
      end
    end
    let(:attributes) { { foo: 'bar' } }
    subject(:instance) { model.new(attributes) }

    describe '.new' do
      it 'should set the default values' do
        expect_any_instance_of(MemoryModel::Base::Fields::FieldSet).to receive(:set_default_values).with(an_instance_of(model), attributes)
        instance
      end

      it 'should run initialize callbacks' do
        pending
      end
    end
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
memory_model-1.0.0 spec/memory_model/base_spec.rb
memory_model-0.1.0 spec/memory_model/base_spec.rb