mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
9617db2078
The current code base is not uniform. After some discussion, we have chosen to go with double quotes by default.
75 lines
1.8 KiB
Ruby
75 lines
1.8 KiB
Ruby
require "cases/helper"
|
|
require "models/notification"
|
|
require "models/user"
|
|
|
|
class SuppressorTest < ActiveRecord::TestCase
|
|
def test_suppresses_create
|
|
assert_no_difference -> { Notification.count } do
|
|
Notification.suppress do
|
|
Notification.create
|
|
Notification.create!
|
|
Notification.new.save
|
|
Notification.new.save!
|
|
end
|
|
end
|
|
end
|
|
|
|
def test_suppresses_update
|
|
user = User.create! token: "asdf"
|
|
|
|
User.suppress do
|
|
user.update token: "ghjkl"
|
|
assert_equal "asdf", user.reload.token
|
|
|
|
user.update! token: "zxcvbnm"
|
|
assert_equal "asdf", user.reload.token
|
|
|
|
user.token = "qwerty"
|
|
user.save
|
|
assert_equal "asdf", user.reload.token
|
|
|
|
user.token = "uiop"
|
|
user.save!
|
|
assert_equal "asdf", user.reload.token
|
|
end
|
|
end
|
|
|
|
def test_suppresses_create_in_callback
|
|
assert_difference -> { User.count } do
|
|
assert_no_difference -> { Notification.count } do
|
|
Notification.suppress { UserWithNotification.create! }
|
|
end
|
|
end
|
|
end
|
|
|
|
def test_resumes_saving_after_suppression_complete
|
|
Notification.suppress { UserWithNotification.create! }
|
|
|
|
assert_difference -> { Notification.count } do
|
|
Notification.create!(message: "New Comment")
|
|
end
|
|
end
|
|
|
|
def test_suppresses_validations_on_create
|
|
assert_no_difference -> { Notification.count } do
|
|
Notification.suppress do
|
|
User.create
|
|
User.create!
|
|
User.new.save
|
|
User.new.save!
|
|
end
|
|
end
|
|
end
|
|
|
|
def test_suppresses_when_nested_multiple_times
|
|
assert_no_difference -> { Notification.count } do
|
|
Notification.suppress do
|
|
Notification.suppress { }
|
|
Notification.create
|
|
Notification.create!
|
|
Notification.new.save
|
|
Notification.new.save!
|
|
end
|
|
end
|
|
end
|
|
end
|