Sha256: e64337ca1fb9f390fc68f92b3086c4a1eb7840647c7a39c1487d7ba605ce13ed

Contents?: true

Size: 981 Bytes

Versions: 11

Compression:

Stored size: 981 Bytes

Contents

require 'helper'

describe Toy::DirtyStore do
  uses_constants('User')

  before do
    User.attribute(:name, String)
  end

  it "does not have changes when loaded from database" do
    user = User.create
    loaded = User.get(user.id)
    loaded.should_not be_changed
  end

  describe "#reload" do
    before      { @user = User.create(:name => 'John') }
    let(:user)  { @user }

    it "clears changes" do
      user.name = 'Steve'
      user.reload
      user.should_not be_changed
    end

    it "clears previously changed" do
      user.reload
      user.previous_changes.should be_empty
    end
  end

  describe "#save" do
    before      { @user = User.create(:name => 'Geoffrey') }
    let(:user)  { @user }

    it "clears changes" do
      user.name = 'John'
      user.should be_changed
      user.save
      user.should_not be_changed
    end

    it "sets previous changes" do
      user.previous_changes.should == {'name' => [nil, 'Geoffrey']}
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
toystore-0.13.2 spec/toy/dirty_store_spec.rb
toystore-0.13.1 spec/toy/dirty_store_spec.rb
toystore-0.13.0 spec/toy/dirty_store_spec.rb
toystore-0.12.0 spec/toy/dirty_store_spec.rb
toystore-0.11.0 spec/toy/dirty_store_spec.rb
toystore-0.10.4 spec/toy/dirty_store_spec.rb
toystore-0.10.3 spec/toy/dirty_store_spec.rb
toystore-0.10.2 spec/toy/dirty_store_spec.rb
toystore-0.10.1 spec/toy/dirty_store_spec.rb
toystore-0.10.0 spec/toy/dirty_store_spec.rb
toystore-0.9.0 spec/toy/dirty_store_spec.rb