修正 AGC 测试与 tsconfig lib 不兼容的 Promise.withResolvers 用法

- 改动文件:apps/ai-game-creator-shell/tests/gameDistributionPublishPanel.test.tsx(仅此一个文件)
- 写法替换:把 `Promise.withResolvers<unknown>()` 换成本地手写 deferred(`let settlePending` + `new Promise((resolve) => { settlePending = resolve })`),resolve 仍由外部持有、promise 仍交回测试,与原 onResolve/onReject 语义一致(原 reject 未被使用)
- 为什么不改 tsconfig:`Promise.withResolvers` 需要 lib ES2024,而 apps/ai-game-creator-shell/tsconfig.json 是 target/lib ES2022;为单个测试把 lib 提到 ES2024 会改整个 AGC 客户端的编译目标与运行时假设,影响面远大于此处需求,故只在测试内手写等价 deferred
- 验证:npm run agc:typecheck 五步全 0(check:tests:types → tsc -p tsconfig.json → skill-pack:check → bundled-resources:check → check-config.mjs)
This commit is contained in:
2026-10-04 00:30:49 +08:00
parent 759ae616d4
commit 72f299ee40
@@ -377,9 +377,14 @@ describe('GameDistributionPublishPanel', () => {
test('发布进行中按原生事件显示阶段与上传百分比', async () => {
let resolvePublish: (value: unknown) => void = () => undefined;
vi.mocked(publishLocalProjectGame).mockImplementation(() => {
const pending = Promise.withResolvers<unknown>();
resolvePublish = pending.resolve;
return pending.promise as never;
// `Promise.withResolvers` 需要 lib ES2024,本仓 AGC 走 ES2022;这里手写等价 deferred:
// resolve 由外部持有、promise 交回测试,语义与 withResolvers 一致(reject 原本未使用)。
let settlePending: (value: unknown) => void = () => undefined;
const pending = new Promise<unknown>((resolve) => {
settlePending = resolve;
});
resolvePublish = settlePending;
return pending as never;
});
eventFake = createTauriEventFake();
eventFake.install();