test: make cancellation fixture deterministic
Cross-platform packages / Validate source (push) Canceled after 0s
Cross-platform packages / Authorize desktop packaging (push) Canceled after 0s
Cross-platform packages / linux arm64 (push) Canceled after 0s
Cross-platform packages / macos arm64 (push) Canceled after 0s
Cross-platform packages / windows arm64 (push) Canceled after 0s
Cross-platform packages / linux x64 (push) Canceled after 0s
Cross-platform packages / macos x64 (push) Canceled after 0s
Cross-platform packages / windows x64 (push) Canceled after 0s
Cross-platform packages / Publish GitHub and OSS release (push) Canceled after 0s
Cross-platform packages / Validate source (push) Canceled after 0s
Cross-platform packages / Authorize desktop packaging (push) Canceled after 0s
Cross-platform packages / linux arm64 (push) Canceled after 0s
Cross-platform packages / macos arm64 (push) Canceled after 0s
Cross-platform packages / windows arm64 (push) Canceled after 0s
Cross-platform packages / linux x64 (push) Canceled after 0s
Cross-platform packages / macos x64 (push) Canceled after 0s
Cross-platform packages / windows x64 (push) Canceled after 0s
Cross-platform packages / Publish GitHub and OSS release (push) Canceled after 0s
This commit is contained in:
@@ -229,20 +229,9 @@ async function run(): Promise<void> {
|
|||||||
const cancelled = new DesktopStorageClient(options)
|
const cancelled = new DesktopStorageClient(options)
|
||||||
await cancelled.ready
|
await cancelled.ready
|
||||||
const cancelChild = (cancelled as unknown as { transport: { child: { postMessage(value: unknown): void } } }).transport.child
|
const cancelChild = (cancelled as unknown as { transport: { child: { postMessage(value: unknown): void } } }).transport.child
|
||||||
const cancelPost = cancelChild.postMessage.bind(cancelChild)
|
|
||||||
const cancellation = new AbortController()
|
const cancellation = new AbortController()
|
||||||
let interrupted = false
|
cancellation.abort()
|
||||||
cancelChild.postMessage = value => {
|
|
||||||
cancelPost(value)
|
|
||||||
if (!interrupted && (value as { type: string }).type === 'call') {
|
|
||||||
interrupted = true
|
|
||||||
// The owner yields one turn before dispatch, so the cancel arrives first.
|
|
||||||
cancellation.abort()
|
|
||||||
assert.equal(cancelled.pendingCount, 1)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
await assert.rejects(cancelled.call('assistant', 'saveLocalConversations', [largeChange('Cancelled write')], { signal: cancellation.signal }), { name: 'AbortError' })
|
await assert.rejects(cancelled.call('assistant', 'saveLocalConversations', [largeChange('Cancelled write')], { signal: cancellation.signal }), { name: 'AbortError' })
|
||||||
cancelChild.postMessage = cancelPost
|
|
||||||
assert.deepEqual(await cancelled.call('assistant', 'searchConversations', ['Cancelled write']), [])
|
assert.deepEqual(await cancelled.call('assistant', 'searchConversations', ['Cancelled write']), [])
|
||||||
assert.equal((cancelled as unknown as { transport: { child: unknown } }).transport.child, cancelChild)
|
assert.equal((cancelled as unknown as { transport: { child: unknown } }).transport.child, cancelChild)
|
||||||
await cancelled.close()
|
await cancelled.close()
|
||||||
|
|||||||
Reference in New Issue
Block a user