/** * @import { test } from 'node:test' */ import assert from 'node:assert' import test from 'node:test' import { mkdir, writeFile, rm } from 'node:fs/promises' import path from 'node:path' import os from 'node:os' import { logPearMultisigKernelHint } from '../lib/pear-multisig-hint.js' test('logPearMultisigKernelHint skips when pear.multisig.json absent', async () => { const dir = await mkdir(path.join(os.tmpdir(), `bare-os-msig-${Date.now()}`), { recursive: true }) try { await logPearMultisigKernelHint(dir) } finally { await rm(dir, { recursive: true, force: true }) } }) test('logPearMultisigKernelHint accepts minimal valid pear.multisig.json shape', async () => { const dir = await mkdir(path.join(os.tmpdir(), `bare-os-msig2-${Date.now()}`), { recursive: true }) try { await writeFile( path.join(dir, 'pear.multisig.json'), JSON.stringify({ signers: ['a', 'b'], quorum: 2 }), 'utf8' ) await logPearMultisigKernelHint(dir) } finally { await rm(dir, { recursive: true, force: true }) } }) test('logPearMultisigKernelHint warns on invalid shape', async () => { const dir = await mkdir(path.join(os.tmpdir(), `bare-os-msig3-${Date.now()}`), { recursive: true }) try { await writeFile( path.join(dir, 'pear.multisig.json'), JSON.stringify({ signers: [], quorum: 0 }), 'utf8' ) const orig = console.warn let saw = false console.warn = (...args) => { if (String(args[0] || '').includes('pear.multisig.json')) saw = true } try { await logPearMultisigKernelHint(dir) } finally { console.warn = orig } assert.ok(saw, 'expected warn for invalid multisig shape') } finally { await rm(dir, { recursive: true, force: true }) } })