|
1 |
| -// @vitest-environment jsdom |
| 1 | +import {JSDOM} from "jsdom"; |
2 | 2 | import {assert, test} from "vitest";
|
3 |
| -import type {CellSpec} from "./notebook.js"; |
| 3 | +import type {CellSpec, Notebook} from "./notebook.js"; |
4 | 4 | import {toNotebook} from "./notebook.js";
|
5 |
| -import {deserialize, serialize} from "./serialize.js"; |
| 5 | +import {deserialize as _deserialize, serialize as _serialize} from "./serialize.js"; |
| 6 | + |
| 7 | +const {window} = new JSDOM(); |
| 8 | + |
| 9 | +function serialize(notebook: Notebook): string { |
| 10 | + return _serialize(notebook, {document: window.document}); |
| 11 | +} |
| 12 | + |
| 13 | +function deserialize(data: string): Notebook { |
| 14 | + return _deserialize(data, {parser: new window.DOMParser()}); |
| 15 | +} |
6 | 16 |
|
7 | 17 | test("serializes unpinned cells", () => {
|
8 | 18 | const notebook1 = toNotebook({
|
@@ -90,7 +100,7 @@ test("serialization escapes </script>, in various forms", () => {
|
90 | 100 | {id: 6, mode: "js", pinned: true, value: `'<\\/script>'`},
|
91 | 101 | {id: 7, mode: "js", pinned: true, value: `'<\\/script '`},
|
92 | 102 | {id: 8, mode: "js", pinned: true, value: `'<\\\\/SCRIPT '`},
|
93 |
| - {id: 9, mode: "js", pinned: true, value: `'<\\\\/sCrIpT '`}, |
| 103 | + {id: 9, mode: "js", pinned: true, value: `'<\\\\/sCrIpT '`} |
94 | 104 | ]
|
95 | 105 | });
|
96 | 106 | const html = serialize(notebook1);
|
|
0 commit comments