summaryrefslogtreecommitdiff
path: root/cli/tests
diff options
context:
space:
mode:
Diffstat (limited to 'cli/tests')
-rw-r--r--cli/tests/integration/run_tests.rs6
-rw-r--r--cli/tests/testdata/before_unload.js21
-rw-r--r--cli/tests/testdata/before_unload.js.out8
3 files changed, 35 insertions, 0 deletions
diff --git a/cli/tests/integration/run_tests.rs b/cli/tests/integration/run_tests.rs
index bd27cd8dd..1cd1db0ef 100644
--- a/cli/tests/integration/run_tests.rs
+++ b/cli/tests/integration/run_tests.rs
@@ -249,6 +249,12 @@ itest!(webstorage_serialization {
output: "webstorage/serialization.ts.out",
});
+// tests the beforeunload event
+itest!(beforeunload_event {
+ args: "run before_unload.js",
+ output: "before_unload.js.out",
+});
+
// tests to ensure that when `--location` is set, all code shares the same
// localStorage cache based on the origin of the location URL.
#[test]
diff --git a/cli/tests/testdata/before_unload.js b/cli/tests/testdata/before_unload.js
new file mode 100644
index 000000000..2572e512b
--- /dev/null
+++ b/cli/tests/testdata/before_unload.js
@@ -0,0 +1,21 @@
+let count = 0;
+
+console.log("0");
+
+globalThis.addEventListener("beforeunload", (e) => {
+ console.log("GOT EVENT");
+ if (count === 0 || count === 1) {
+ e.preventDefault();
+ setTimeout(() => {
+ console.log("3");
+ }, 100);
+ }
+
+ count++;
+});
+
+console.log("1");
+
+setTimeout(() => {
+ console.log("2");
+}, 100);
diff --git a/cli/tests/testdata/before_unload.js.out b/cli/tests/testdata/before_unload.js.out
new file mode 100644
index 000000000..f1f2ab49a
--- /dev/null
+++ b/cli/tests/testdata/before_unload.js.out
@@ -0,0 +1,8 @@
+0
+1
+2
+GOT EVENT
+3
+GOT EVENT
+3
+GOT EVENT