Files
cloudflare__vinext/tests/dev-initial-server-error.test.ts
Stephen Zhou fb233b0a34 feat: improve dev error overlay source frames (#1746)
* Improve dev overlay stack source mapping

* Polish dev error overlay stack display

* Add dev overlay code frames

* Align dev overlay message spacing

* Add dev overlay error copy action

* Fix dev overlay knip exports

* Polish dev overlay layout

* Polish dev error overlay spacing

* Fix dev overlay coverage and source frame metadata

* Fix dev overlay recovery for RSC HMR errors

* Handle Vite HMR build errors in dev overlay

* Fix knip

* Use Shadow DOM for dev error overlay
2026-06-05 12:49:11 +01:00

24 lines
1.0 KiB
TypeScript

import { describe, expect, it } from "vite-plus/test";
import { createInitialDevServerErrorScript } from "../packages/vinext/src/server/dev-initial-server-error.js";
describe("initial dev server error script", () => {
it("serializes server errors into an HTML-safe nonce-bearing script in development", () => {
const error = new Error('</script><script>alert("xss")</script>');
error.stack = "Error: boom\n at SiteFooter (/app/site-footer.tsx:2:9)";
const html = createInitialDevServerErrorScript(error, "vinext-nonce", "development");
expect(html).toContain('<script nonce="vinext-nonce">');
expect(html).toContain('self["__VINEXT_INITIAL_DEV_ERRORS__"].push');
expect(html).toContain("\\u003c/script\\u003e");
expect(html).not.toContain("</script><script");
expect(html).toContain("/app/site-footer.tsx:2:9");
});
it("does not emit anything in production", () => {
const html = createInitialDevServerErrorScript(new Error("secret"), undefined, "production");
expect(html).toBe("");
});
});