aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/date_time_precision_test.rb
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2019-02-27 03:16:28 +0900
committerRyuta Kamizono <kamipo@gmail.com>2019-02-27 03:20:35 +0900
commitb78e3b5e21b9924324c4391cc58afac8c7b4cccb (patch)
tree230f45dcf924a983012bdddde92122b5d4408a28 /activerecord/test/cases/date_time_precision_test.rb
parent7c95c522473ec7efb7830f8afa056805ce3d6128 (diff)
downloadrails-b78e3b5e21b9924324c4391cc58afac8c7b4cccb.tar.gz
rails-b78e3b5e21b9924324c4391cc58afac8c7b4cccb.tar.bz2
rails-b78e3b5e21b9924324c4391cc58afac8c7b4cccb.zip
Test that no datetime precision isn't truncated on assignment
Also, max precision (= 6) isn't regarded as unlimited precision for now.
Diffstat (limited to 'activerecord/test/cases/date_time_precision_test.rb')
-rw-r--r--activerecord/test/cases/date_time_precision_test.rb22
1 files changed, 21 insertions, 1 deletions
diff --git a/activerecord/test/cases/date_time_precision_test.rb b/activerecord/test/cases/date_time_precision_test.rb
index e64a8372d0..9d1af9362d 100644
--- a/activerecord/test/cases/date_time_precision_test.rb
+++ b/activerecord/test/cases/date_time_precision_test.rb
@@ -29,7 +29,7 @@ if subsecond_precision_supported?
def test_datetime_precision_is_truncated_on_assignment
@connection.create_table(:foos, force: true)
- @connection.add_column :foos, :created_at, :datetime, precision: 0
+ @connection.add_column :foos, :created_at, :datetime, precision: 0
@connection.add_column :foos, :updated_at, :datetime, precision: 6
time = ::Time.now.change(nsec: 123456789)
@@ -45,6 +45,26 @@ if subsecond_precision_supported?
assert_equal 123456000, foo.updated_at.nsec
end
+ unless current_adapter?(:Mysql2Adapter)
+ def test_no_datetime_precision_isnt_truncated_on_assignment
+ @connection.create_table(:foos, force: true)
+ @connection.add_column :foos, :created_at, :datetime
+ @connection.add_column :foos, :updated_at, :datetime, precision: 6
+
+ time = ::Time.now.change(nsec: 123)
+ foo = Foo.new(created_at: time, updated_at: time)
+
+ assert_equal 123, foo.created_at.nsec
+ assert_equal 0, foo.updated_at.nsec
+
+ foo.save!
+ foo.reload
+
+ assert_equal 0, foo.created_at.nsec
+ assert_equal 0, foo.updated_at.nsec
+ end
+ end
+
def test_timestamps_helper_with_custom_precision
@connection.create_table(:foos, force: true) do |t|
t.timestamps precision: 4