@samitouri / QOS-React-2 / commits / 4c2b89288f

[be][fixtures] Pass message directly instead of overwriting Error object

--- Started getting crashes in watch mode from trying to overwrite `error.message` (invalid setter or frozen object). This should fix

Mofei Zhang committed Dec 11, 2023 at 22:59 UTC 4c2b89288f3613a66996ec50826cc3d448db1223
2 files changed +8 -12
compiler/packages/fixture-test-utils/src/output-utils.ts
+3 -5
@@ -20,7 +20,7 @@ ${s}
20 export function writeOutputToString(
21 input: string,
22 output: string | null,
23 - error: Error | null
23 + errorMessage: string | null
24 ) {
25 // leading newline intentional
26 let result = `
@@ -39,13 +39,11 @@ ${output == null ? "[ none ]" : wrapWithTripleBackticks(output, "javascript")}
39 result += "\n";
40 }
41
42 - if (error != null) {
43 - const errorMessage = error.message.replace(/^\/.*?:\s/, "");
44 -
42 + if (errorMessage != null) {
43 result += `
44 ## Error
45
48 -${wrapWithTripleBackticks(errorMessage)}
46 +${wrapWithTripleBackticks(errorMessage.replace(/^\/.*?:\s/, ""))}
47 \n`;
48 }
49 return result + ` `;
compiler/packages/snap/src/compiler-worker.ts
+5 -7
@@ -66,7 +66,7 @@ export async function compile(
66 }
67
68 let code: string | null = null;
69 - let error: Error | null = null;
69 + let error: string | null = null;
70 try {
71 // NOTE: we intentionally require lazily here so that we can clear the require cache
72 // and load fresh versions of the compiler when `compilerVersion` changes.
@@ -93,17 +93,15 @@ export async function compile(
93 if (isOnlyFixture && !expectError) {
94 console.error(e.stack);
95 }
96 - e.message = e.message.replace(/\u001b[^m]*m/g, "");
97 - error = e;
96 + error = e.message.replace(/\u001b[^m]*m/g, "");
97 }
98
99 // Promote console errors so they can be recorded in fixture output
100 for (const consoleError of seenConsoleErrors) {
101 if (error != null) {
103 - error.message = `${error.message}\n\n${consoleError}`;
102 + error = `${error}\n\n${consoleError}`;
103 } else {
105 - error = new Error(consoleError);
106 - error.name = "ConsoleError";
104 + error = `ConsoleError: ${consoleError}`;
105 }
106 }
107
@@ -114,7 +112,7 @@ export async function compile(
112 }
113 } else {
114 if (error !== null) {
117 - unexpectedError = `Expected fixture '${basename}' to succeed but it failed with error:\n\n${error.message}`;
115 + unexpectedError = `Expected fixture '${basename}' to succeed but it failed with error:\n\n${error}`;
116 } else if (code == null || code.length === 0) {
117 unexpectedError = `Expected output for fixture '${basename}'.`;
118 }