aboutsummaryrefslogtreecommitdiff
path: root/test/snippets/public/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'test/snippets/public/index.html')
-rw-r--r--test/snippets/public/index.html91
1 files changed, 91 insertions, 0 deletions
diff --git a/test/snippets/public/index.html b/test/snippets/public/index.html
new file mode 100644
index 000000000..225c98d52
--- /dev/null
+++ b/test/snippets/public/index.html
@@ -0,0 +1,91 @@
+<html>
+ <head>
+ <meta charset="utf-8" />
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <title>bun Test</title>
+ </head>
+ <body>
+ <script type="module">
+ globalThis.console.assert = (condition, ...content) => {
+ if (!condition) {
+ throw new Error(content.join(" "));
+ }
+ };
+ globalThis.getModuleScriptSrc = async (name) => {
+ const response = await fetch(name, {
+ cache: "force-cache",
+ });
+
+ if (response.ok) {
+ return await response.text();
+ } else {
+ throw new Error(`Failed to get module script ${name}`);
+ }
+ };
+
+ globalThis.runTest = async (name) => {
+ var Namespace = await import(name);
+ var testFunction = Namespace.test;
+
+ if (
+ !("test" in Namespace) &&
+ "default" in Namespace &&
+ typeof Namespace.default === "function"
+ ) {
+ Namespace = Namespace.default();
+ testFunction = Namespace.test;
+ }
+
+ if (!testFunction) {
+ throw new Error("No test function found in " + name);
+ }
+
+ if (typeof testFunction !== "function") {
+ throw new Error(
+ `Expected (await import(\"${name}\"")) to have a test function.\nReceived: ${Object.keys(
+ Namespace
+ ).join(", ")} `
+ );
+ }
+
+ if (globalThis.BUN_DEBUG_MODE) {
+ try {
+ return await testFunction();
+ } catch (exception) {
+ console.error(exception);
+ debugger;
+ throw exception;
+ }
+ } else {
+ return await testFunction();
+ }
+ };
+
+ if (globalThis.location.pathname.endsWith("-test")) {
+ const script = document.createElement("script");
+ script.src = globalThis.location.pathname.substring(
+ 0,
+ location.pathname.length - "-test".length
+ );
+ script.type = "module";
+ document.body.appendChild(script);
+
+ globalThis.testDone = (path) => alert(`test ${path} success`);
+ globalThis.testFail = (path) => alert(`!test ${path} fail`);
+ runTest(
+ globalThis.location.pathname.substring(
+ 0,
+ location.pathname.length - "-test".length
+ )
+ ).then(
+ () => {},
+ (err) => {
+ console.error(err);
+ alert(err.toString());
+ }
+ );
+ }
+ </script>
+ </body>
+</html>