fix: resolve Windows test timeout and CodeQL high-severity alerts
- Add missing vi.mock for cli-tool-manager and sentry in runner-env test (unmocked getToolInfo caused filesystem lookups timing out on Windows CI) - Loop HTML tag stripping to handle nested tag fragments (CodeQL #5077) - Decode & entity last to prevent double-unescaping (CodeQL #5076) Co-Authored-By: Claude Opus 4.6 <[email protected]>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
72c0409c79
commit
03a0b21f38
@@ -88,16 +88,18 @@ function htmlToMarkdown(html: string): string {
|
||||
md = md.replace(/<br\s*\/?>/gi, '\n');
|
||||
md = md.replace(/<hr\s*\/?>/gi, '---\n\n');
|
||||
|
||||
// Remove any remaining HTML tags
|
||||
md = md.replace(/<[^>]+>/g, '');
|
||||
// Remove any remaining HTML tags (loop to handle nested tag fragments)
|
||||
while (/<[^>]+>/.test(md)) {
|
||||
md = md.replace(/<[^>]+>/g, '');
|
||||
}
|
||||
|
||||
// Decode common HTML entities
|
||||
md = md.replace(/&/g, '&');
|
||||
// Decode common HTML entities (& LAST to prevent double-unescaping like &lt; → < → <)
|
||||
md = md.replace(/</g, '<');
|
||||
md = md.replace(/>/g, '>');
|
||||
md = md.replace(/"/g, '"');
|
||||
md = md.replace(/'/g, "'");
|
||||
md = md.replace(/ /g, ' ');
|
||||
md = md.replace(/&/g, '&');
|
||||
|
||||
// Clean up excessive whitespace
|
||||
md = md.replace(/\n{3,}/g, '\n\n');
|
||||
|
||||
@@ -30,6 +30,15 @@ vi.mock('../../utils', () => ({
|
||||
getGitHubTokenForSubprocess: () => mockGetGitHubTokenForSubprocess(),
|
||||
}));
|
||||
|
||||
vi.mock('../../../../cli-tool-manager', () => ({
|
||||
getToolInfo: () => ({ found: false, path: undefined, source: undefined }),
|
||||
}));
|
||||
|
||||
vi.mock('../../../../sentry', () => ({
|
||||
getSentryEnvForSubprocess: () => ({}),
|
||||
safeBreadcrumb: () => {},
|
||||
}));
|
||||
|
||||
import { getRunnerEnv } from '../runner-env';
|
||||
|
||||
describe('getRunnerEnv', () => {
|
||||
|
||||
Reference in New Issue
Block a user