holepunch lockfile drift Markdown dashboard + doc links - disk.os / ctx: replication_operator_sketch schema 5 + corestore stats; protomux extensions proc versioning; HRPC allowlist_sketch schema 3 + versioned stock route table; swarm_health proc + runtime caps paths - Session: BARE_OS_HOSTNAME_SET + ctx.bareOsSetSessionHostname, hostname man, security_posture; export -p in shell - kernel.ext.d: optional provides[] version conflict detection (strict boot); resolver parity + tests; BARE_OS_INIT_DEFER_KERNEL_EXT_GRAPH documented - VFS/policy: mirror/aux read tests, GUEST_BARE_READ_ALL edge negative test; adaptive warm-cache window env documented; microbench note - POSIX: syscalls.json schema 10, posix_fadvise no-op, getconf + conformance matrix sync; posix-issue7-traceability index; handbook/profile/matrix updates - Seeder: pear.multisig hint tests; SCM_RIGHTS unit coverage extended - Regenerated kernel bundle, seeder kernel mirror, posix dashboard, coreutils build/man; booter CHANGELOG maintenance row updated Full npm test / pretest green.
63 lines
1.8 KiB
JavaScript
63 lines
1.8 KiB
JavaScript
/**
|
|
* @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 })
|
|
}
|
|
})
|