Problem
frontend/src/plans.ts (11 call sites) and frontend/src/history.ts (6) use escapeHtmlAttr, but several test suites' jest.mock('../utils', () => ({ ... })) factories do not stub escapeHtmlAttr. When those tests render plans/history, the call throws:
TypeError: (0 , utils_1.escapeHtmlAttr) is not a function
This fails the "Build frontend" CI job (it runs the jest suites) on the base branch and on every frontend PR (e.g. visible on #1114, which only inherited it). plans.test.ts and the history-* suites are affected.
Fix
Add an escapeHtmlAttr stub to the jest.mock('../utils', …) factory in each affected suite, mirroring the real helper (escapes & < > " '). frontend/src/__tests__/history.test.ts already has a correct stub to copy.
Acceptance criteria
Problem
frontend/src/plans.ts(11 call sites) andfrontend/src/history.ts(6) useescapeHtmlAttr, but several test suites'jest.mock('../utils', () => ({ ... }))factories do not stubescapeHtmlAttr. When those tests render plans/history, the call throws:This fails the "Build frontend" CI job (it runs the jest suites) on the base branch and on every frontend PR (e.g. visible on #1114, which only inherited it).
plans.test.tsand the history-* suites are affected.Fix
Add an
escapeHtmlAttrstub to thejest.mock('../utils', …)factory in each affected suite, mirroring the real helper (escapes& < > " ').frontend/src/__tests__/history.test.tsalready has a correct stub to copy.Acceptance criteria
escapeHtmlAttr.jestfrontend suites pass (the 2 pre-existingformatDate/getDatePartstimezone failures are unrelated and out of scope).