From 2bf965a42b2f61d181089faf94d124a2f6c656d0 Mon Sep 17 00:00:00 2001 From: Ian Ker-Seymer Date: Mon, 10 Aug 2026 10:48:23 -0400 Subject: [PATCH] Add to_liquid_call_count feature for liquification-count specs StandardFilterTest#test_default_43dbbb97 asserts that to_liquid is called exactly twice for '{{ a0 | default }}' (Ruby liquifies in find_variable and again in filter invoke). Engines that liquify once, or that lower 'default' to bytecode instead of a real filter invocation (e.g. liquid-vm), observe a different count while rendering identical output for ordinary values. Tag the spec with a dedicated feature so such engines can declare it as a missing feature instead of carrying it in known-failure baselines. Assisted-By: devx/717e5259-915f-4a7b-af07-6abe46da5b90 --- lib/liquid/spec/cli/features.rb | 7 +++++++ specs/liquid_ruby/standard_filters.yml | 1 + 2 files changed, 8 insertions(+) diff --git a/lib/liquid/spec/cli/features.rb b/lib/liquid/spec/cli/features.rb index 711451c8..051ac163 100644 --- a/lib/liquid/spec/cli/features.rb +++ b/lib/liquid/spec/cli/features.rb @@ -94,6 +94,13 @@ module Features recommendation: :unnecessary, note: "Ruby implementation detail. Tests internal drop mechanics.", }, + to_liquid_call_count: { + description: "Tests asserting Ruby's exact to_liquid invocation count", + recommendation: :unnecessary, + note: "Ruby implementation detail. Ruby liquifies a value in find_variable and " \ + "again in filter invoke; engines that liquify once (or lower filters like " \ + "`default` to bytecode) legitimately observe a different count.", + }, drop_class_output: { description: "Tests expecting drop class name in output (Liquid::Drop)", recommendation: :unnecessary, diff --git a/specs/liquid_ruby/standard_filters.yml b/specs/liquid_ruby/standard_filters.yml index 6fdb680a..e556509f 100644 --- a/specs/liquid_ruby/standard_filters.yml +++ b/specs/liquid_ruby/standard_filters.yml @@ -1211,6 +1211,7 @@ specs: complexity: 160 features: - ruby_drops + - to_liquid_call_count - name: StandardFilterTest#test_default_446f9bac template: "{{ a0 | default }}" environment: