feat(web-platform): release V0.8.1 常规地图优化
web-platform-ci / TypeScript, lint, unit, build (push) Has been cancelled
web-platform-ci / Playwright E2E (push) Has been cancelled

This commit is contained in:
2026-09-03 13:18:35 +08:00
parent deead17a9a
commit a9b07e0abf
49 changed files with 4987 additions and 569 deletions
+42 -1
View File
@@ -1,4 +1,4 @@
import { discoverMapEntries, resolveProjectMap } from './MapLoader';
import { discoverMapEntries, resolveProjectMap, visualMapAssets } from './MapLoader';
import type { ProjectFile, ProjectManifest } from '../project/types';
const encode = (value: string) => new TextEncoder().encode(value);
@@ -52,6 +52,47 @@ describe('MapLoader', () => {
});
});
it('只为已放置实例解析视觉地图,并保留实例 id', () => {
const files = [
file('maps/warehouse/map.json', descriptor),
file('maps/warehouse/physics/world.xml', '<mujoco><worldbody/></mujoco>'),
file('maps/warehouse/visuals/scene.glb', 'glb'),
];
const projectManifest: ProjectManifest = {
id: 'test',
name: 'test',
files,
entries: [],
maps: discoverMapEntries(files),
totalBytes: files.reduce((sum, item) => sum + item.size, 0),
};
expect(visualMapAssets(projectManifest, [])).toEqual([]);
expect(
visualMapAssets(projectManifest, [
{
id: 'instance-a',
name: '仓库副本',
selection: {
kind: 'project',
descriptorPath: 'maps/warehouse/map.json',
positionX: 2,
positionY: -1,
yawDeg: 30,
},
},
]),
).toEqual([
expect.objectContaining({
id: 'instance-a',
name: '仓库副本',
path: 'maps/warehouse/visuals/scene.glb',
positionX: 2,
positionY: -1,
yawDeg: 30,
}),
]);
});
it('发现 schema V2 authoring 创作层', () => {
const editable = JSON.stringify({
...JSON.parse(descriptor),