Skip to content

Commit

Permalink
Improve testing of edge cases
Browse files Browse the repository at this point in the history
  • Loading branch information
adamklingbaum committed Jun 19, 2023
1 parent 81fdaf8 commit e870dde
Showing 1 changed file with 32 additions and 19 deletions.
51 changes: 32 additions & 19 deletions test/integration/standard_filter_test.rb
Expand Up @@ -928,45 +928,58 @@ def test_where_no_target_value
assert_equal([{ "foo" => true }, { "foo" => "for sure" }], @filters.where(input, "foo"))
end

def test_sum
def test_sum_with_all_numbers
input = [1, 2]

assert_equal(3, @filters.sum(input))
assert_raises(Liquid::ArgumentError, "cannot select the property 'quantity'") do
@filters.sum(input, "quantity")
end
end

def test_sum_with_numeric_strings
input = [1, "2"]
assert_equal(3, @filters.sum(input))
input = [1, 2, "3", "4"]

assert_equal(10, @filters.sum(input))
assert_raises(Liquid::ArgumentError, "cannot select the property 'quantity'") do
@filters.sum(input, "quantity")
end
end

def test_sum_with_non_numeric_values
input = [3, "foo", { "foo" => "bar" }, true, nil]
assert_equal(3, @filters.sum(input))
def test_sum_with_nested_arrays
input = [1, [2, [3, 4]]]

assert_equal(10, @filters.sum(input))
assert_raises(Liquid::ArgumentError, "cannot select the property 'quantity'") do
@filters.sum(input, "quantity")
end
end

def test_sum_with_property_on_indexable_map_values
input = [
{ "quantity" => 1 },
{ "quantity" => 2 },
]
def test_sum_with_indexable_map_values
input = [{ "quantity" => 1 }, { "quantity" => 2, "weight" => 3 }, { "weight" => 4 }]

assert_equal(0, @filters.sum(input))
assert_equal(3, @filters.sum(input, "quantity"))
assert_equal(0, @filters.sum(input, "weight"))
assert_equal(7, @filters.sum(input, "weight"))
assert_equal(0, @filters.sum(input, "subtotal"))
end

def test_sum_with_property_on_indexable_non_map_values
input = [1, "foo", { "quantity" => 2 }]
def test_sum_with_indexable_non_map_values
input = [1, [2], "foo", { "quantity" => 3 }]

assert_equal(3, @filters.sum(input))
assert_raises(Liquid::ArgumentError, "cannot select the property 'quantity'") do
@filters.sum(input, "quantity")
end
end

def test_sum_with_property_on_unindexable_values
input = [true, nil, :foo]
assert_equal(0, @filters.sum(input, "quantity"))
def test_sum_with_unindexable_values
input = [1, true, nil, { "quantity" => 2 }]

mixed_input = [true, nil, :foo, { "quantity" => 3 }]
assert_equal(3, @filters.sum(mixed_input, "quantity"))
assert_equal(1, @filters.sum(input))
assert_raises(Liquid::ArgumentError, "cannot select the property 'quantity'") do
@filters.sum(input, "quantity")
end
end

private
Expand Down

0 comments on commit e870dde

Please sign in to comment.