(el)
| 100 | } |
| 101 | |
| 102 | function getActionText(el) { |
| 103 | return [ |
| 104 | el?.textContent, |
| 105 | el?.value, |
| 106 | el?.getAttribute?.('aria-label'), |
| 107 | el?.getAttribute?.('title'), |
| 108 | ] |
| 109 | .filter(Boolean) |
| 110 | .join(' ') |
| 111 | .replace(/\s+/g, ' ') |
| 112 | .trim(); |
| 113 | } |
| 114 | |
| 115 | function getInlineTextSnippet(text, maxLength = 160) { |
| 116 | const normalized = (text || '').replace(/\s+/g, ' ').trim(); |
no outgoing calls
no test coverage detected