Skip to content

Commit baadd7a

Browse files
committed
runtime.dispose tests
1 parent d7afbb0 commit baadd7a

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

test/runtime/dispose-test.js

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import {Runtime} from "@observablehq/runtime";
2+
import assert from "assert";
3+
import {sleep} from "../variable/valueof.js";
4+
5+
describe("runtime.dispose", () => {
6+
it("invalidates all variables", async () => {
7+
const runtime = new Runtime();
8+
const main = runtime.module();
9+
const log = [];
10+
main.variable(true).define(["invalidation"], async (invalidation) => {
11+
await invalidation;
12+
log.push("invalidation");
13+
});
14+
await sleep();
15+
runtime.dispose();
16+
await sleep();
17+
assert.deepStrictEqual(log, ["invalidation"]);
18+
});
19+
it("terminates generators", async () => {
20+
const runtime = new Runtime();
21+
const main = runtime.module();
22+
const log = [];
23+
main.variable(true).define([], function* () {
24+
try {
25+
while (true) yield;
26+
} finally {
27+
log.push("return");
28+
}
29+
});
30+
await sleep();
31+
runtime.dispose();
32+
await sleep();
33+
assert.deepStrictEqual(log, ["return"]);
34+
});
35+
});

0 commit comments

Comments
 (0)