Open narnd opened 4 days ago
Liquid::Context#new_isolated_subcontext should also set the render options strict_variables and strict_filters for the subcontext.
Liquid::Context#new_isolated_subcontext
strict_variables
strict_filters
Maybe im missing something but I cant figure out how to raise undefined variable or undefined filter in partials using the render tag.
undefined variable
undefined filter
render
Please advise, happy to write a pr.
Example:
class PatchedContext < Liquid::Context def new_isolated_subcontext super.tap do |subcontext| subcontext.strict_variables = strict_variables subcontext.strict_filters = strict_filters end end end class FileSystem def read_template_file(_template_path) "{{ undefined_var }}{{ 'test' | undefined_filter }}" end end # normal example, no errors liquid_context = Liquid::Context.build(registers: {file_system: FileSystem.new}) template = Liquid::Template.parse("{% render 'partial' %}") template.render(liquid_context, strict_variables: true, strict_filters: true) template.errors # => [] # expected behavior, errors in partial patched_context = PatchedContext.build(registers: {file_system: FileSystem.new}) template = Liquid::Template.parse("{% render 'partial' %}") template.render(patched_context, strict_variables: true, strict_filters: true) template.errors # => # [#<Liquid::UndefinedVariable: Liquid error: undefined variable undefined_var>, # #<Liquid::UndefinedFilter: Liquid error: undefined filter undefined_filter>]
Liquid::Context#new_isolated_subcontext
should also set the render optionsstrict_variables
andstrict_filters
for the subcontext.Maybe im missing something but I cant figure out how to raise
undefined variable
orundefined filter
in partials using therender
tag.Please advise, happy to write a pr.
Example: