test: stabilize storage loss validation races
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:
@@ -17,6 +17,7 @@ app.setPath('userData', join(root, 'electron'))
|
||||
|
||||
async function run(): Promise<void> {
|
||||
await app.whenReady()
|
||||
await chmod(root, 0o700)
|
||||
const options = { assistantPath: join(root, 'assistant.sqlite'), knowledgePath: join(root, 'knowledge.sqlite'),
|
||||
defaultRootPath: root, userDataPath: root, entryPath: join(root, 'desktop-storage-entry.mjs'),
|
||||
readerWorkerPath: join(root, 'readonly-query-worker.cjs'), upgradeWorkerPath: join(root, 'assistant-storage-worker.cjs') }
|
||||
|
||||
@@ -94,6 +94,7 @@ it('awaits a termination already in progress before close settles or capacity ca
|
||||
const transport = new DelayedTransport()
|
||||
const reader = new ReadonlyQueryReader('assistant', '', '', Date.now, { createTransport: () => transport })
|
||||
const pending = reader.call('assistant.save', [])
|
||||
await Promise.resolve()
|
||||
const rejected = expect(pending).rejects.toMatchObject({ code: 'STORAGE_UNCONFIRMED' })
|
||||
transport.emit('error', new Error('host failed'))
|
||||
reader.resetBackoffForTest()
|
||||
|
||||
@@ -258,7 +258,7 @@ describe('assistant readonly worker', () => {
|
||||
// Termination races the response. Either outcome is valid here; the
|
||||
// dedicated crash tests cover deterministic rejection propagation.
|
||||
await inFlight.then(
|
||||
result => expect(result).toEqual(expected[1]),
|
||||
result => expect(result).toEqual(database.listConversationSummaries([conversations[3]!.id])),
|
||||
error => expect(error).toBeInstanceOf(ReadonlyWorkerUnavailableError),
|
||||
)
|
||||
} finally { database.close() }
|
||||
|
||||
@@ -1892,7 +1892,7 @@ describe('SettingsPanel runtime files', () => {
|
||||
const modelName = kind === 'embedding' ? embeddingCatalogEntry.displayName : speechCatalog[0]!.displayName
|
||||
const download = await screen.findByRole('button', { name: `下载 ${modelName}` })
|
||||
expect(screen.queryByText('当前来源不可下载')).not.toBeInTheDocument()
|
||||
expect(screen.getByRole('button', { name: '模型下载源' })).toHaveFocus()
|
||||
await waitFor(() => expect(screen.getByRole('button', { name: '模型下载源' })).toHaveFocus())
|
||||
fireEvent.click(download)
|
||||
await waitFor(() => {
|
||||
if (kind === 'embedding') expect(installEmbeddingModel).toHaveBeenCalledWith(embeddingCatalogEntry.id, 'hugging-face')
|
||||
|
||||
Reference in New Issue
Block a user