ReMe/reme_studio/tests/files-workspace.test.mjs
jinliyl ef3f99f019
refactor(packaging): reorganize published packages (#495)
* refactor(packaging): reorganize published packages

* fix(packaging): install AgentScope extra in wheel smoke

* docs: align package guides and documentation site

* ci(workflow): add core dependency verification step in Python package build

- Add a workflow step to verify released core dependencies by installing the wheel with core extras
- Assert the presence of the static index.html file to ensure proper package contents
- Create and use a temporary virtual environment for isolation during verification
- Keep existing artifacts upload step intact and conditional on inputs.upload_artifacts flag

* fix(ci): update package installation dependencies in Windows workflow

- Change pip install from editable reme_studio and core to only dev and as extras
- Remove installation of reme_studio and core to streamline dependency setup
- Ensure Windows CI uses the correct extras for testing environment

* fix(tests): add missing commas in toml file reads in package version tests

- Added trailing commas in the tomllib.loads calls for auto-fin and daily_paper configs
- Ensured consistent syntax to prevent potential tuple misinterpretation
- Improved readability and correctness of the test setup code

* fix(packaging): protect qwenpaw releases and test Studio health
2026-08-27 14:02:09 +08:00

54 lines
1.6 KiB
JavaScript

import assert from "node:assert/strict";
import test from "node:test";
import { getLanguage } from "../app/files-workspace/get-language.ts";
import { parseMarkdownFrontmatter } from "../app/files-workspace/markdown.ts";
import { clampNavigatorWidth } from "../app/files-workspace/panel-resize.ts";
import { buildTree } from "../app/workspace-files.ts";
test("Monaco language mapping stays compatible with QwenPaw", () => {
assert.equal(getLanguage("src/page.tsx"), "typescript");
assert.equal(getLanguage("digest/topic.md"), "markdown");
assert.equal(getLanguage("notes/README"), "plaintext");
});
test("Markdown preview separates simple frontmatter like QwenPaw", () => {
assert.deepEqual(
parseMarkdownFrontmatter(
"---\nname: topic\ndescription: hello\n---\n# Body",
),
{
body: "# Body",
entries: [
{ key: "name", value: "topic" },
{ key: "description", value: "hello" },
],
},
);
});
test("Navigator resizing preserves usable widths for both panes", () => {
assert.equal(clampNavigatorWidth(100, 1200), 220);
assert.equal(clampNavigatorWidth(360, 1200), 360);
assert.equal(clampNavigatorWidth(1000, 1200), 780);
});
test("File tree preserves newest-modified-first ordering from the workspace API", () => {
const tree = buildTree(
[
"daily/older/note.md",
"digest/recent.md",
"daily/older/earliest.md",
"root-old.md",
],
new Set(["md"]),
);
assert.deepEqual(
tree.map((node) => node.path),
["daily", "digest", "root-old.md"],
);
assert.deepEqual(
tree[0].children[0].children.map((node) => node.name),
["note.md", "earliest.md"],
);
});