Sha256: 42532c4d89e2b922d52d10e3334d91402e434e4a3980f4e97e5642aa6aa91fea

Contents?: true

Size: 683 Bytes

Versions: 1

Compression:

Stored size: 683 Bytes

Contents

# encoding: utf-8

require 'spec_helper'

describe Session::Relation, '#dirty?' do
  subject { users.dirty?(user) }

  include_context 'Session::Relation'

  context 'with a transient object' do
    let(:user) { users.new }

    it { should be(true) }
  end

  context 'when persisted object was changed' do
    before do
      user.name = 'John Doe'
    end

    it { should be(true) }
  end

  context 'when persisted object was not changed' do
    it { should be(false) }
  end

  context 'when object is not tracked' do
    let(:user) { model.new(id: 3, name: 'Unknown') }

    specify do
      expect { subject }.to raise_error(Session::ObjectNotTrackedError)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rom-0.2.0 spec/unit/rom/session/relation/dirty_predicate_spec.rb