test: reject calls after confirmed storage loss
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:
@@ -205,22 +205,14 @@ async function run(): Promise<void> {
|
|||||||
await lostFiles.attachments.outputCreate('crashed-call', abandoned)
|
await lostFiles.attachments.outputCreate('crashed-call', abandoned)
|
||||||
await lostFiles.attachments.outputAppend('crashed-call', abandoned, Buffer.from('orphan'))
|
await lostFiles.attachments.outputAppend('crashed-call', abandoned, Buffer.from('orphan'))
|
||||||
await lostFiles.attachments.outputFinish('crashed-call', abandoned, 6)
|
await lostFiles.attachments.outputFinish('crashed-call', abandoned, 6)
|
||||||
const internal = lost as unknown as { transport: { child: { kill(): boolean; postMessage(message: unknown): void } } }
|
const internal = lost as unknown as { transport: { child: { kill(): boolean } } }
|
||||||
const post = internal.transport.child.postMessage.bind(internal.transport.child)
|
|
||||||
let killed = false
|
|
||||||
internal.transport.child.postMessage = message => {
|
|
||||||
post(message)
|
|
||||||
if (!killed && (message as { type: string }).type === 'call') {
|
|
||||||
killed = true
|
|
||||||
assert.ok(internal.transport.child.kill())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
const neverReplayId = randomUUID()
|
const neverReplayId = randomUUID()
|
||||||
const neverReplayMessages = histories.map(message => ({ ...message, id: randomUUID() }))
|
const neverReplayMessages = histories.map(message => ({ ...message, id: randomUUID() }))
|
||||||
|
assert.ok(internal.transport.child.kill())
|
||||||
|
while (Reflect.get(lost, 'state') !== 'failed') await new Promise(resolve => setImmediate(resolve))
|
||||||
await assert.rejects(lost.call('assistant', 'saveLocalConversations', [[{
|
await assert.rejects(lost.call('assistant', 'saveLocalConversations', [[{
|
||||||
header: { id: neverReplayId, title: 'Never replay', updatedAt: 123 }, messages: neverReplayMessages
|
header: { id: neverReplayId, title: 'Never replay', updatedAt: 123 }, messages: neverReplayMessages
|
||||||
}]]), error => error?.code === 'STORAGE_UNCONFIRMED' || error?.message === 'Storage is not ready')
|
}]]), error => error?.code === 'STORAGE_UNCONFIRMED' || error?.message === 'Storage is not ready')
|
||||||
while (Reflect.get(lost, 'state') !== 'failed') await new Promise(resolve => setImmediate(resolve))
|
|
||||||
await assert.rejects(lost.call('assistant', 'listProjects', []), /not ready/)
|
await assert.rejects(lost.call('assistant', 'listProjects', []), /not ready/)
|
||||||
await lost.retry()
|
await lost.retry()
|
||||||
await lost.ready
|
await lost.ready
|
||||||
|
|||||||
Reference in New Issue
Block a user