blob: 225c98d52a8121ad48e3ccd6fe500c2e8c139a64 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
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>
|