1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Add test cases for where.not with polymorphic association

`where.not` with multiple conditions is still unexpected behavior. But
`where.not` with only polymorphic association has already been fixed in
213796fb.

Closes #14161.
Closes #16983.
Closes #17010.
Closes #26207.
This commit is contained in:
Ryuta Kamizono 2017-08-18 07:08:16 +09:00
parent 46a366e7f2
commit e9ba12f746

View file

@ -109,6 +109,15 @@ module ActiveRecord
assert_equal expected.to_sql, actual.to_sql
end
def test_polymorphic_shallow_where_not
treasure = treasures(:sapphire)
expected = [price_estimates(:diamond), price_estimates(:honda)]
actual = PriceEstimate.where.not(estimate_of: treasure)
assert_equal expected.sort_by(&:id), actual.sort_by(&:id)
end
def test_polymorphic_nested_array_where
treasure = Treasure.new
treasure.id = 1
@ -121,6 +130,16 @@ module ActiveRecord
assert_equal expected.to_sql, actual.to_sql
end
def test_polymorphic_nested_array_where_not
treasure = treasures(:diamond)
car = cars(:honda)
expected = [price_estimates(:sapphire_1), price_estimates(:sapphire_2)]
actual = PriceEstimate.where.not(estimate_of: [treasure, car])
assert_equal expected.sort_by(&:id), actual.sort_by(&:id)
end
def test_polymorphic_array_where_multiple_types
treasure_1 = treasures(:diamond)
treasure_2 = treasures(:sapphire)