import test from 'node:test';import assert from 'node:assert/strict';import fs from 'node:fs';import os from 'node:os';import path from 'node:path';import {validate,publish,verify,status} from './console.mjs'; const fixture=path.resolve('broadcasts/BRD-GLW-ERA-REALITY-0001.json'); test('broadcast requires typed publisher, boundary and evidence',()=>{assert.equal(validate(JSON.parse(fs.readFileSync(fixture))).broadcast_id,'BRD-GLW-ERA-REALITY-0001');assert.throws(()=>validate({schema:'guanghu.glp-broadcast/v1'}),/BROADCAST_INVALID/)}); test('publish appends hash chain and CURRENT reads ledger tip',()=>{const root=fs.mkdtempSync(path.join(os.tmpdir(),'gh-broadcast-'));try{const r=publish(fixture,root);assert.equal(r.target_readback,true);assert.equal(status(root).broadcast_id,'BRD-GLW-ERA-REALITY-0001');assert.equal(verify(root).publication_count,1)}finally{fs.rmSync(root,{recursive:true,force:true})}});