(source: string, replaceImports: boolean)
| 310 | )?.code ?? ''; |
| 311 | |
| 312 | const prepareRunnableCode = (source: string, replaceImports: boolean): string => |
| 313 | (replaceImports ? replaceRunnableImports(source) : source) |
| 314 | .replace( |
| 315 | /console\.log\((.+?)\.innerHTML\);$/gm, |
| 316 | '_actual.push(getHtml($1));', |
| 317 | ) |
| 318 | .replace(/console\.log/gm, '_actual.push') |
| 319 | .replace( |
| 320 | /\/\/ -> (.+?)\s(.*?Event\(.*?)$/gm, |
| 321 | 'act(() => $1.dispatchEvent(new $2));\n', |
| 322 | ) |
| 323 | .replace( |
| 324 | /\/\/ -> (.*?Event\(.*?)$/gm, |
| 325 | 'act(() => dispatchEvent(new $1));\n', |
| 326 | ) |
| 327 | .replace( |
| 328 | /\/\/ ->\n(.*?);$/gms, |
| 329 | (match, expected) => |
| 330 | '_expected.push(' + expected.replace(/\n\s*/gms, ``) + ');\n', |
| 331 | ) |
| 332 | .replace(/\/\/ -> (.*?)$/gm, '_expected.push($1);\n') |
| 333 | .replace(/\/\/ \.\.\. \/\/ !act$/gm, 'await act(pause);\n') |
| 334 | .replace(/\/\/ \.\.\.$/gm, 'await pause();\n') |
| 335 | .replace(/^(.*?) \/\/ !act$/gm, 'act(() => {$1});') |
| 336 | .replace(/^(.*?) \/\/ !ignore$/gm, '') |
| 337 | .replace(/\/\/ !reset$/gm, 'reset();') |
| 338 | .replace(/\n+/g, '\n') |
| 339 | .replace(/export (const|class) /gm, '$1 '); |
| 340 | |
| 341 | const parseCodeBlocks = (block: string) => |
| 342 | [...block.matchAll(FILE_BLOCKS)].map(([, info = '', content = '']) => ({ |
no test coverage detected
searching dependent graphs…