Files
orca/src/preload/renderer-process-memory-reader.test.ts
T
OrcaWinandOrcaWin 0efc842028 [comment audit] Shorten preload comments (#32257)
* 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>
2026-10-23 02:16:59 -07:00

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()
})
})