test(web): add one-pass feature smoke plan and record blockers
Some checks failed
M6 deployable RC / quick (push) Has been cancelled
M6 deployable RC / chromium (push) Has been cancelled
M6 deployable RC / release (push) Has been cancelled

This commit is contained in:
mes123456
2026-09-07 06:48:03 +08:00
parent 91cb389a82
commit 0bc56836c5
15 changed files with 1702 additions and 22 deletions

View File

@@ -245,6 +245,21 @@ export class WebEngineClient {
return { status: result.status, snapshot: result.snapshot, geometryBuffers: [...this.geometryBuffers], nonMeshGeometryBuffers: [...this.nonMeshGeometryBuffers] };
}
async importScene(format: string, fileName: string, mimeType: string, base64: string): Promise<BlendOpenResult & { delta: SceneDelta; importResult?: unknown }> {
const result = await this.request({ type: "jsonCommand", cmd: "importScene", params: { format, fileName, mimeType, base64 } });
if (!result.snapshot || !result.delta) throw this.report("INVALID_ARGUMENT", "IO 导入未返回场景结果", true);
this.geometryBuffers = result.geometryBuffers ?? this.geometryBuffers;
this.nonMeshGeometryBuffers = result.nonMeshGeometryBuffers ?? this.nonMeshGeometryBuffers;
return {
status: result.status,
snapshot: result.snapshot,
geometryBuffers: [...this.geometryBuffers],
nonMeshGeometryBuffers: [...this.nonMeshGeometryBuffers],
delta: result.delta,
importResult: result.json,
};
}
async snapshot(): Promise<BlendOpenResult> {
const result = await this.request({ type: "snapshot" });
if (!result.snapshot) throw this.report("INVALID_ARGUMENT", "WebEngine 未返回 SceneIR", true);