ai-chatbot/tests/routes/hicad-embedded-performance.test.ts
2026-07-27 18:24:43 +08:00

44 lines
1.4 KiB
TypeScript

import { expect, test } from "@playwright/test";
import fs from "node:fs";
import path from "node:path";
const projectRoot = process.cwd();
test.describe("HiCAD embedded startup", () => {
test("suppresses the upstream onboarding chooser in embedded mode", () => {
const vendorScript = fs.readFileSync(
path.join(projectRoot, "scripts/vendor-zoo-modeling-app.mjs"),
"utf8"
);
const localization = fs.readFileSync(
path.join(projectRoot, "vendor/zoo-modeling-app/localization.ts"),
"utf8"
);
expect(vendorScript).toMatch(
/env\(\)\.VITE_ZOO_API_TOKEN !== '\$\{proxyToken\}'/
);
expect(localization).toContain("[data-testid='onboarding-toast']");
});
test("preloads and serves the CAD wasm using a precompressed asset", () => {
const vendorScript = fs.readFileSync(
path.join(projectRoot, "scripts/vendor-zoo-modeling-app.mjs"),
"utf8"
);
const nginxTemplate = fs.readFileSync(
path.join(projectRoot, "deploy/nginx-hicad-zoo-ws.conf.template"),
"utf8"
);
expect(vendorScript).toContain(
'rel="preload" href="./kcl_wasm_lib_bg.wasm"'
);
expect(vendorScript).toContain("/\\.(?:css|js|wasm)$/");
expect(vendorScript).toContain("precompressRootWasm(buildDir)");
expect(nginxTemplate).toMatch(
/location = \/vendor\/zoo-modeling-app\/kcl_wasm_lib_bg\.wasm \{[\s\S]*?gzip_static on;/
);
});
});