From 0e216dceb5f4e7f6ee784049dc6f7fef09412f23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20L=C3=B3pez=20Prat?= Date: Wed, 8 Jul 2026 16:39:10 +0200 Subject: [PATCH] Linter: Treat `breadcrumb` as a side-effecting helper in `erb-no-unused-expressions` --- .../packages/linter/src/rules/erb-no-unused-expressions.ts | 1 + .../linter/test/rules/erb-no-unused-expressions.test.ts | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/javascript/packages/linter/src/rules/erb-no-unused-expressions.ts b/javascript/packages/linter/src/rules/erb-no-unused-expressions.ts index 3e3787861..cd6a248d8 100644 --- a/javascript/packages/linter/src/rules/erb-no-unused-expressions.ts +++ b/javascript/packages/linter/src/rules/erb-no-unused-expressions.ts @@ -27,6 +27,7 @@ const MUTATION_METHODS = new Set([ ]) const SIDE_EFFECT_METHODS = new Set([ + "breadcrumb", "content_for", "provide", "flush", diff --git a/javascript/packages/linter/test/rules/erb-no-unused-expressions.test.ts b/javascript/packages/linter/test/rules/erb-no-unused-expressions.test.ts index e4055d719..a8aa27d09 100644 --- a/javascript/packages/linter/test/rules/erb-no-unused-expressions.test.ts +++ b/javascript/packages/linter/test/rules/erb-no-unused-expressions.test.ts @@ -131,6 +131,13 @@ describe("ERBNoUnusedExpressionsRule", () => { `) }) + test("passes for breadcrumb", () => { + expectNoOffenses(dedent` + <% breadcrumb :page %> + <% breadcrumb :product, @product %> + `) + }) + test("passes for assert_valid_keys", () => { expectNoOffenses(dedent` <%