2012-03-12 11:12:27 +00:00
|
|
|
require 'test_helper'
|
|
|
|
|
|
|
|
class TimestampTest < ActiveSupport::TestCase
|
|
|
|
|
|
|
|
setup do
|
2012-03-12 13:02:47 +00:00
|
|
|
PaperTrail.timestamp_field = :custom_created_at
|
2012-03-12 11:12:27 +00:00
|
|
|
change_schema
|
2013-05-29 21:19:05 +00:00
|
|
|
PaperTrail::Version.connection.schema_cache.clear!
|
|
|
|
PaperTrail::Version.reset_column_information
|
2012-03-12 11:12:27 +00:00
|
|
|
|
|
|
|
Fluxor.instance_eval <<-END
|
|
|
|
has_paper_trail
|
|
|
|
END
|
|
|
|
|
|
|
|
@fluxor = Fluxor.create :name => 'Some text.'
|
|
|
|
@fluxor.update_attributes :name => 'Some more text.'
|
|
|
|
@fluxor.update_attributes :name => 'Even more text.'
|
|
|
|
end
|
|
|
|
|
2012-03-12 12:23:25 +00:00
|
|
|
teardown do
|
2012-03-12 13:02:47 +00:00
|
|
|
PaperTrail.timestamp_field = :created_at
|
2012-03-12 12:23:25 +00:00
|
|
|
end
|
|
|
|
|
2012-03-12 11:12:27 +00:00
|
|
|
test 'versions works with custom timestamp field' do
|
|
|
|
# Normal behaviour
|
|
|
|
assert_equal 3, @fluxor.versions.length
|
|
|
|
assert_nil @fluxor.versions[0].reify
|
|
|
|
assert_equal 'Some text.', @fluxor.versions[1].reify.name
|
|
|
|
assert_equal 'Some more text.', @fluxor.versions[2].reify.name
|
|
|
|
|
|
|
|
# Tinker with custom timestamps.
|
|
|
|
now = Time.now.utc
|
|
|
|
@fluxor.versions.reverse.each_with_index do |version, index|
|
|
|
|
version.update_attribute :custom_created_at, (now + index.seconds)
|
|
|
|
end
|
|
|
|
|
|
|
|
# Test we are ordering by custom timestamps.
|
|
|
|
@fluxor.versions true # reload association
|
|
|
|
assert_nil @fluxor.versions[2].reify
|
|
|
|
assert_equal 'Some text.', @fluxor.versions[1].reify.name
|
|
|
|
assert_equal 'Some more text.', @fluxor.versions[0].reify.name
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|