aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/persistence_test.rb
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2017-07-16 22:34:51 +0900
committerRyuta Kamizono <kamipo@gmail.com>2017-07-18 03:27:55 +0900
commit972f0d6cb6c9d510b9b32e7f4138184154ab70eb (patch)
tree8d719cba74fbf68bd0aa0f2cc4338f0e1778bc4a /activerecord/test/cases/persistence_test.rb
parent8acca896cbaa01f6fc51969601888a440e83d53a (diff)
downloadrails-972f0d6cb6c9d510b9b32e7f4138184154ab70eb.tar.gz
rails-972f0d6cb6c9d510b9b32e7f4138184154ab70eb.tar.bz2
rails-972f0d6cb6c9d510b9b32e7f4138184154ab70eb.zip
`Persistence#delete` should not be affected by scoping
`self.class.delete` is delegated to `all` and `all` is affected by scoping. It should use `unscoped` to not be affected by that.
Diffstat (limited to 'activerecord/test/cases/persistence_test.rb')
-rw-r--r--activerecord/test/cases/persistence_test.rb7
1 files changed, 7 insertions, 0 deletions
diff --git a/activerecord/test/cases/persistence_test.rb b/activerecord/test/cases/persistence_test.rb
index 5895c51714..5830f9916a 100644
--- a/activerecord/test/cases/persistence_test.rb
+++ b/activerecord/test/cases/persistence_test.rb
@@ -437,6 +437,13 @@ class PersistenceTest < ActiveRecord::TestCase
assert_not_nil Topic.find(2)
end
+ def test_delete_isnt_affected_by_scoping
+ topic = Topic.find(1)
+ assert_difference("Topic.count", -1) do
+ Topic.where("1=0").scoping { topic.delete }
+ end
+ end
+
def test_destroy
topic = Topic.find(1)
assert_equal topic, topic.destroy, "topic.destroy did not return self"