chore: 1.0.0 release
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
import assert from "node:assert/strict";
|
||||
import test from "node:test";
|
||||
import {
|
||||
assertWritableChangePath,
|
||||
extractPagePaths,
|
||||
joinDeckPath,
|
||||
normalizeRelativePath,
|
||||
titleFromManifest,
|
||||
} from "../editor/lib.js";
|
||||
|
||||
const yaml = `---
|
||||
version: v2
|
||||
title: "测试文稿"
|
||||
pages:
|
||||
- pages/01.page
|
||||
- 'pages/02.page' # comment
|
||||
theme:
|
||||
colors: {}
|
||||
`;
|
||||
|
||||
test("parses PPTD manifests and keeps file access inside the project", () => {
|
||||
assert.deepEqual(extractPagePaths(yaml), ["pages/01.page", "pages/02.page"]);
|
||||
assert.deepEqual(extractPagePaths('{"pages":["a.page","folder/b.page"]}'), ["a.page", "folder/b.page"]);
|
||||
assert.equal(titleFromManifest(yaml, "fallback"), "测试文稿");
|
||||
assert.equal(joinDeckPath("deck", "pages/01.page"), "deck/pages/01.page");
|
||||
assert.equal(joinDeckPath("deck", "deck/pages/01.page"), "deck/pages/01.page");
|
||||
assert.equal(assertWritableChangePath("deck", "pages/01.page"), "deck/pages/01.page");
|
||||
assert.throws(() => normalizeRelativePath("../secret"), /不允许越过/);
|
||||
assert.throws(() => normalizeRelativePath("/absolute/path"), /绝对路径/);
|
||||
assert.throws(() => assertWritableChangePath("deck", "media/image.png"), /仅允许编辑/);
|
||||
});
|
||||
Reference in New Issue
Block a user