test(cua): await provider disposal before restoring permission state

This commit is contained in:
creatixchu committed 2026-10-19 19:03:36 +08:00
1 parent b788fd3add
commit 39347a3f24
5 files changed
+6 -4

No files matched your search

+1 -1
View File
@@ -103,7 +103,7 @@ This matrix shows which packages dispatch each harness-owned event and which pac
| `internal/service` | - | `gateway` |
| `internal/status` | - | [`agent`](../packages/core/agent), `inspector`, `translator`, [`web`](../packages/web/web) |
| `internal/update` | - | [`app-boot`](../packages/boot/app-boot) |
| `loader/volatile-update` | - | [`cua`](../packages/experimental/cua), [`llm-deepseek`](../packages/llm/llm-deepseek), [`llm-pi-ai`](../packages/llm/llm-pi-ai), [`plugin-market`](../packages/boot/plugin-market), `product-analytics`, `speech-to-text` |
| `loader/volatile-update` | - | [`llm-deepseek`](../packages/llm/llm-deepseek), [`llm-pi-ai`](../packages/llm/llm-pi-ai), [`plugin-market`](../packages/boot/plugin-market), `product-analytics`, `speech-to-text` |
| `slots/changed` | `ui-renderer` (`emit`) | - |
<!-- END GENERATED event-producer-consumer:undeclared -->
+1 -1
View File
@@ -105,7 +105,7 @@
| `internal/service` | - | `gateway` |
| `internal/status` | - | [`agent`](../packages/core/agent), `inspector`, `translator`, [`web`](../packages/web/web) |
| `internal/update` | - | [`app-boot`](../packages/boot/app-boot) |
| `loader/volatile-update` | - | [`cua`](../packages/experimental/cua), [`llm-deepseek`](../packages/llm/llm-deepseek), [`llm-pi-ai`](../packages/llm/llm-pi-ai), [`plugin-market`](../packages/boot/plugin-market), `product-analytics`, `speech-to-text` |
| `loader/volatile-update` | - | [`llm-deepseek`](../packages/llm/llm-deepseek), [`llm-pi-ai`](../packages/llm/llm-pi-ai), [`plugin-market`](../packages/boot/plugin-market), `product-analytics`, `speech-to-text` |
| `slots/changed` | `ui-renderer` (`emit`) | - |
<!-- END GENERATED event-producer-consumer:undeclared -->
@@ -707,7 +707,9 @@ it('stores revocation without entering the HMR configuration queue', async () =>
release.resolve(undefined)
await blocked
const entry = [...f.ctx.loader.entries()].find(entry => entry.options.id === 'cua')!
const stopping = entry.fiber!
await entry.update({ disabled: true })
await stopping.dispose()
await entry.update({ disabled: false })
await f.ctx.loader.await()
expect((await f.ctx.cuaAccess.applications()).allowedApps).toEqual([])
@@ -101,7 +101,7 @@ export class CuaPermissionStore {
signal.throwIfAborted()
return operation({ state: this.memory, save: (next) => { this.memory = next; return Promise.resolve() } })
}
const pending = this.tail.then(run, run)
const pending = this.tail.then(run)
this.tail = pending.then(() => {}, () => {})
return pending
}
@@ -438,7 +438,7 @@ it('does not reactivate old handles when stored permission was revoked and later
await f.access.select(f.agent, f.client, handle, identity, signal)
await f.save([])
await f.save([{ id: identity.id, name: identity.name, executablePath: identity.executablePath }])
await expect(f.access.select(f.agent, f.client, handle, identity, signal)).rejects.toThrow('APP_ACCESS_REVOKED')
await expect(f.access.select(f.agent, f.client, handle, identity, signal)).rejects.toThrow('APP_ACCESS_DENIED')
expect(f.client.disposed).toBe(true)
const replacement = new NativeClient(f.ctx, nativeConfig, unusedConnector)
await f.access.select(f.agent, replacement, handle, identity, signal)