修正 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:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user