Sha256: 245d5dac9b5d553823b70a26989ef65b72b63735278c232d8558eaf1d35634d9

Contents?: true

Size: 1.18 KB

Versions: 24

Compression:

Stored size: 1.18 KB

Contents

require 'helper'

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

  before do
    User.timestamps
  end

  it "adds created_at attribute" do
    User.attribute?(:created_at)
  end

  it "adds updated_at attribute" do
    User.attribute?(:updated_at)
  end

  describe "on create" do
    before do
      @now = Time.now.utc
      Timecop.freeze(@now) do
        @user = User.create
      end
    end

    it "sets created at" do
      @user.created_at.to_i.should == @now.to_i
    end

    it "sets updated at" do
      @user.updated_at.to_i.should == @now.to_i
    end

    it "uses created_at if provided" do
      yesterday = @now - 1.day
      @user = User.create(:created_at => yesterday)
      @user.created_at.to_i.should == yesterday.to_i
    end
  end

  describe "on update" do
    before do
      @now       = Time.now.utc
      @yesterday = @now - 1.day

      Timecop.freeze(@yesterday) do
        @user = User.create
      end

      Timecop.freeze(@now) do
        @user.save
      end
    end

    it "does not change created at" do
      @user.created_at.to_i.should == @yesterday.to_i
    end

    it "updates updated at" do
      @user.updated_at.to_i.should == @now.to_i
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
toystore-0.13.2 spec/toy/timestamps_spec.rb
toystore-0.13.1 spec/toy/timestamps_spec.rb
toystore-0.13.0 spec/toy/timestamps_spec.rb
toystore-0.12.0 spec/toy/timestamps_spec.rb
toystore-0.11.0 spec/toy/timestamps_spec.rb
toystore-0.10.4 spec/toy/timestamps_spec.rb
toystore-0.10.3 spec/toy/timestamps_spec.rb
toystore-0.10.2 spec/toy/timestamps_spec.rb
toystore-0.10.1 spec/toy/timestamps_spec.rb
toystore-0.10.0 spec/toy/timestamps_spec.rb
toystore-0.9.0 spec/toy/timestamps_spec.rb
toystore-0.8.3 spec/toy/timestamps_spec.rb
toystore-0.8.2 spec/toy/timestamps_spec.rb
toystore-0.8.1 spec/toy/timestamps_spec.rb
toystore-0.8.0 spec/toy/timestamps_spec.rb
toystore-0.7.0 spec/toy/timestamps_spec.rb
toystore-0.6.6 spec/toy/timestamps_spec.rb
toystore-0.6.5 spec/toy/timestamps_spec.rb
toystore-0.6.4 spec/toy/timestamps_spec.rb
toystore-0.6.3 spec/toy/timestamps_spec.rb