Ensure t.timestamps respects options. [#828 state:resolved]

Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
This commit is contained in:
Patrick Reagan
2008-08-22 12:48:00 +01:00
committed by Pratik Naik
parent 52ac9d0444
commit 683ff235e6
2 changed files with 39 additions and 5 deletions

View File

@@ -443,9 +443,10 @@ module ActiveRecord
# Appends <tt>:datetime</tt> columns <tt>:created_at</tt> and
# <tt>:updated_at</tt> to the table.
def timestamps
column(:created_at, :datetime)
column(:updated_at, :datetime)
def timestamps(*args)
options = args.extract_options!
column(:created_at, :datetime, options)
column(:updated_at, :datetime, options)
end
def references(*args)

View File

@@ -237,6 +237,39 @@ if ActiveRecord::Base.connection.supports_migrations?
end
end
def test_create_table_with_timestamps_should_create_datetime_columns
table_name = :testings
Person.connection.create_table table_name do |t|
t.timestamps
end
created_columns = Person.connection.columns(table_name)
created_at_column = created_columns.detect {|c| c.name == 'created_at' }
updated_at_column = created_columns.detect {|c| c.name == 'updated_at' }
assert created_at_column.null
assert updated_at_column.null
ensure
Person.connection.drop_table table_name rescue nil
end
def test_create_table_with_timestamps_should_create_datetime_columns_with_options
table_name = :testings
Person.connection.create_table table_name do |t|
t.timestamps :null => false
end
created_columns = Person.connection.columns(table_name)
created_at_column = created_columns.detect {|c| c.name == 'created_at' }
updated_at_column = created_columns.detect {|c| c.name == 'updated_at' }
assert !created_at_column.null
assert !updated_at_column.null
ensure
Person.connection.drop_table table_name rescue nil
end
# SQL Server, Sybase, and SQLite3 will not allow you to add a NOT NULL
# column to a table without a default value.
@@ -1192,8 +1225,8 @@ if ActiveRecord::Base.connection.supports_migrations?
def test_timestamps_creates_updated_at_and_created_at
with_new_table do |t|
t.expects(:column).with(:created_at, :datetime)
t.expects(:column).with(:updated_at, :datetime)
t.expects(:column).with(:created_at, :datetime, kind_of(Hash))
t.expects(:column).with(:updated_at, :datetime, kind_of(Hash))
t.timestamps
end
end