mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-31 19:16:29 +00:00
Ninth main.cjs cluster peel. The hermes:version handler moves verbatim into
electron/version-ipc.cjs behind a registerVersionIpc({ ipcMain,
resolveHermesVersion, resolveUpdateRoot }) registrar. The version + root resolvers
stay in the main process (shared with the About menu) and are injected.
Channel name unchanged → preload + renderer untouched. Adds
electron/version-ipc.test.cjs (surface + payload behavior).
41 lines
1.3 KiB
JavaScript
41 lines
1.3 KiB
JavaScript
'use strict'
|
|
|
|
const assert = require('node:assert/strict')
|
|
const test = require('node:test')
|
|
|
|
const { registerVersionIpc } = require('./version-ipc.cjs')
|
|
|
|
function fakeIpcMain() {
|
|
const handlers = new Map()
|
|
|
|
return {
|
|
handlers,
|
|
handle(channel, handler) {
|
|
assert.ok(!handlers.has(channel), `duplicate registration for ${channel}`)
|
|
handlers.set(channel, handler)
|
|
}
|
|
}
|
|
}
|
|
|
|
test('registerVersionIpc wires hermes:version to a handler fn', () => {
|
|
const ipcMain = fakeIpcMain()
|
|
|
|
registerVersionIpc({ ipcMain, resolveHermesVersion: () => '1.2.3', resolveUpdateRoot: () => '/root' })
|
|
|
|
assert.deepEqual([...ipcMain.handlers.keys()], ['hermes:version'])
|
|
assert.equal(typeof ipcMain.handlers.get('hermes:version'), 'function')
|
|
})
|
|
|
|
test('version reports the resolved Hermes version + root alongside runtime versions', async () => {
|
|
const ipcMain = fakeIpcMain()
|
|
|
|
registerVersionIpc({ ipcMain, resolveHermesVersion: () => '1.2.3', resolveUpdateRoot: () => '/root' })
|
|
|
|
const res = await ipcMain.handlers.get('hermes:version')({})
|
|
|
|
assert.equal(res.appVersion, '1.2.3')
|
|
assert.equal(res.hermesRoot, '/root')
|
|
assert.equal(res.electronVersion, process.versions.electron)
|
|
assert.equal(res.nodeVersion, process.versions.node)
|
|
assert.equal(res.platform, process.platform)
|
|
})
|