diff --git a/config/scripts/mobile-localization-candidate-rules.mjs b/config/scripts/mobile-localization-candidate-rules.mjs index 980009ecfe3..02dd8a2af09 100644 --- a/config/scripts/mobile-localization-candidate-rules.mjs +++ b/config/scripts/mobile-localization-candidate-rules.mjs @@ -218,6 +218,9 @@ function ancestorJsxAttributeName(node) { ts.isJsxExpression(current) || ts.isConditionalExpression(current) || ts.isParenthesizedExpression(current) || + ts.isAsExpression(current) || + ts.isSatisfiesExpression(current) || + ts.isNonNullExpression(current) || ts.isBinaryExpression(current) ) { current = current.parent diff --git a/config/scripts/mobile-localization-candidate-rules.test.mjs b/config/scripts/mobile-localization-candidate-rules.test.mjs index d81c800e242..f9b7d6d10c9 100644 --- a/config/scripts/mobile-localization-candidate-rules.test.mjs +++ b/config/scripts/mobile-localization-candidate-rules.test.mjs @@ -133,12 +133,12 @@ export function Example() { expect(candidates.map((candidate) => candidate.text)).toEqual(['Actually rendered value']) }) - it('finds literals assigned to variables rendered through user-visible JSX attributes', () => { + it('finds direct and assigned literals in user-visible JSX attributes', () => { const source = ` export function Example() { const copy = 'Save changes' const className = 'not-visible-copy' - return