mirror of
https://github.com/stablyai/orca.git
synced 2026-10-23 16:03:49 +00:00
* fix(crash-reporting): disambiguate main process relaunches * fix(crash-reporting): trace all app relaunch causes
36 lines
1.2 KiB
TypeScript
36 lines
1.2 KiB
TypeScript
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
|
|
|
const { appRelaunchMock, recordDurableCrashBreadcrumbMock } = vi.hoisted(() => ({
|
|
appRelaunchMock: vi.fn(),
|
|
recordDurableCrashBreadcrumbMock: vi.fn()
|
|
}))
|
|
|
|
vi.mock('electron', () => ({ app: { relaunch: appRelaunchMock } }))
|
|
vi.mock('./crash-reporting/durable-crash-breadcrumb', () => ({
|
|
recordDurableCrashBreadcrumb: recordDurableCrashBreadcrumbMock
|
|
}))
|
|
|
|
import { relaunchApp } from './app-relaunch'
|
|
|
|
beforeEach(() => {
|
|
appRelaunchMock.mockReset()
|
|
recordDurableCrashBreadcrumbMock.mockReset()
|
|
})
|
|
|
|
describe('relaunchApp', () => {
|
|
it('durably records the reason before scheduling the replacement process', () => {
|
|
relaunchApp('gpu-fallback', { processReason: 'crashed', exitCode: 5 })
|
|
|
|
expect(recordDurableCrashBreadcrumbMock).toHaveBeenCalledOnce()
|
|
expect(recordDurableCrashBreadcrumbMock).toHaveBeenCalledWith('app_relaunch_requested', {
|
|
processReason: 'crashed',
|
|
exitCode: 5,
|
|
reason: 'gpu-fallback'
|
|
})
|
|
expect(appRelaunchMock).toHaveBeenCalledOnce()
|
|
expect(recordDurableCrashBreadcrumbMock.mock.invocationCallOrder[0]).toBeLessThan(
|
|
appRelaunchMock.mock.invocationCallOrder[0]
|
|
)
|
|
})
|
|
})
|