1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00
This commit is contained in:
Kasper Timm Hansen 2021-03-03 16:02:00 +01:00
parent 32a69da269
commit bfa1c36333
No known key found for this signature in database
GPG key ID: 191153215EDA53D8

View file

@ -8,39 +8,29 @@ class ExcludingTest < ActiveRecord::TestCase
fixtures :posts, :comments
def test_result_set_does_not_include_single_excluded_record
post = posts(:welcome)
assert_not_includes Post.excluding(post).to_a, post
assert_not_includes Post.excluding(posts(:welcome)).to_a, posts(:welcome)
end
def test_result_set_does_not_include_collection_of_excluded_records
post_welcome = posts(:welcome)
post_thinking = posts(:thinking)
post_welcome, post_thinking = posts(:welcome, :thinking)
relation = Post.excluding(post_welcome, post_thinking)
assert_not_includes relation.to_a, post_welcome
assert_not_includes relation.to_a, post_thinking
end
def test_result_set_through_association_does_not_include_single_excluded_record
post = posts(:welcome)
comment_greetings = comments(:greetings)
comment_more_greetings = comments(:more_greetings)
relation = post.comments.excluding(comment_greetings)
comment_greetings, comment_more_greetings = comments(:greetings, :more_greetings)
relation = posts(:welcome).comments.excluding(comment_greetings)
assert_not_includes relation.to_a, comment_greetings
assert_includes relation.to_a, comment_more_greetings
end
def test_result_set_through_association_does_not_include_collection_of_excluded_records
post = posts(:welcome)
comment_greetings = comments(:greetings)
comment_more_greetings = comments(:more_greetings)
relation = post.comments.excluding([comment_greetings, comment_more_greetings])
comment_greetings, comment_more_greetings = comments(:greetings, :more_greetings)
relation = posts(:welcome).comments.excluding([ comment_greetings, comment_more_greetings ])
assert_not_includes relation.to_a, comment_greetings
assert_not_includes relation.to_a, comment_more_greetings
end
@ -53,19 +43,12 @@ class ExcludingTest < ActiveRecord::TestCase
end
def test_raises_on_record_from_different_class
post = posts(:welcome)
comment = comments(:greetings)
exception = assert_raises ArgumentError do
Post.excluding(post, comment)
end
assert_equal "You must only pass a single or collection of Post objects to #excluding.", exception.message
error = assert_raises(ArgumentError) { Post.excluding(posts(:welcome), comments(:greetings)) }
assert_equal "You must only pass a single or collection of Post objects to #excluding.", error.message
end
def test_result_set_does_not_include_without_record
post = posts(:welcome)
assert_not_includes Post.without(post).to_a, post
assert_not_includes Post.without(posts(:welcome)).to_a, posts(:welcome)
end
private