-
-
Notifications
You must be signed in to change notification settings - Fork 267
Closed
Description
Calling map with an array of objects where one of the objects doesn't have the given key, when strictVariables: true ends up in a weird interaction because of the call to _getFromScope.
Ruby simply returns nothing for those cases, liquidjs is instead rendering the error instead of throwing it.
it('should not throw or render an error', function () {
const posts = [{ category: 'foo' }, { name: 'bar' }]
return test('{{posts | map: "category"}}', { posts }, 'foo', { strictVariables: true })
})
This test results in:
● filters/array › map › should not throw or render an error
expect(received).toBe(expected) // Object.is equality
Expected: "foo"
Received: "InternalUndefinedVariableError: undefined variable: category"
Notice how the error is rendered into the output string, and not even thrown. Ruby doesn't throw though, with strict vars and strict filiters it simply doesn't return anything. Yo would get "foo" as output for the given test.
Reactions are currently unavailable