19 lines
808 B
JavaScript
19 lines
808 B
JavaScript
import assert from "node:assert/strict";
|
|
import { readFileSync } from "node:fs";
|
|
import test from "node:test";
|
|
|
|
const source = readFileSync(
|
|
new URL("../packages/ui-react/src/Toast.tsx", import.meta.url),
|
|
"utf8",
|
|
);
|
|
|
|
test("toast items own independent ten-second terminal lifetimes", () => {
|
|
assert.match(source, /const DEFAULT_TOAST_DURATION_MS = 10_000/);
|
|
assert.match(source, /function TimedToastCard/);
|
|
assert.match(source, /item\.tone === "loading" \? null : DEFAULT_TOAST_DURATION_MS/);
|
|
assert.match(source, /window\.setTimeout\(\(\) => dismissRef\.current\(item\.id\), duration\)/);
|
|
assert.match(source, /\[item\.durationMs, item\.id, item\.tone\]/);
|
|
assert.match(source, /items\.map\(\(item\) => <TimedToastCard key=\{item\.id\}/);
|
|
assert.doesNotMatch(source, /items\.flatMap/);
|
|
});
|