mirror of
https://github.com/stablyai/orca.git
synced 2026-11-02 18:17:36 +00:00
* chore: audit preload root comments and track repository coverage * docs: track repository comment audit coverage * chore: keep comment audit tracker local * chore: shorten preload API contract comments --------- Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
39 lines
1.5 KiB
TypeScript
39 lines
1.5 KiB
TypeScript
import { describe, expect, it } from 'vitest'
|
|
import { readRendererProcessMemory } from './renderer-process-memory-reader'
|
|
|
|
// Electron requires residentSet in its types, but Chromium omits it on macOS.
|
|
const source = (
|
|
getProcessMemoryInfo: () => Promise<Partial<Electron.ProcessMemoryInfo>>
|
|
): Parameters<typeof readRendererProcessMemory>[0] =>
|
|
({ getProcessMemoryInfo }) as unknown as Parameters<typeof readRendererProcessMemory>[0]
|
|
|
|
describe('readRendererProcessMemory', () => {
|
|
it('reports the private footprint in the kilobytes Electron returns', async () => {
|
|
await expect(
|
|
readRendererProcessMemory(
|
|
source(async () => ({ private: 632_832, residentSet: 1_143_808, shared: 0 }))
|
|
)
|
|
).resolves.toEqual({ privateKB: 632_832, residentKB: 1_143_808 })
|
|
})
|
|
|
|
it('omits the resident set where Chromium does not report one', async () => {
|
|
await expect(
|
|
readRendererProcessMemory(source(async () => ({ private: 1024, shared: 0 })))
|
|
).resolves.toEqual({ privateKB: 1024 })
|
|
})
|
|
|
|
it('returns null rather than throwing when the runtime withholds the read', async () => {
|
|
await expect(
|
|
readRendererProcessMemory(
|
|
source(() => Promise.reject(new Error('getProcessMemoryInfo unavailable')))
|
|
)
|
|
).resolves.toBeNull()
|
|
})
|
|
|
|
it('returns null for a non-finite private size', async () => {
|
|
await expect(
|
|
readRendererProcessMemory(source(async () => ({ private: Number.NaN, shared: 0 })))
|
|
).resolves.toBeNull()
|
|
})
|
|
})
|