Files
Shadowbroker/frontend/src/__tests__/mesh/meshTerminalPolicy.test.ts
T
anoracleofra-code 668ce16dc7 v0.9.6: InfoNet hashchain, Wormhole gate encryption, mesh reputation, 16 community contributors
Gate messages now propagate via the Infonet hashchain as encrypted blobs — every node syncs them
through normal chain sync while only Gate members with MLS keys can decrypt. Added mesh reputation
system, peer push workers, voluntary Wormhole opt-in for node participation, fork recovery,
killwormhole scripts, obfuscated terminology, and hardened the self-updater to protect encryption
keys and chain state during updates.

New features: Shodan search, train tracking, Sentinel Hub imagery, 8 new intelligence layers,
CCTV expansion to 11,000+ cameras across 6 countries, Mesh Terminal CLI, prediction markets,
desktop-shell scaffold, and comprehensive mesh test suite (215 frontend + backend tests passing).

Community contributors: @wa1id, @AlborzNazari, @adust09, @Xpirix, @imqdcr, @csysp, @suranyami,
@chr0n1x, @johan-martensson, @singularfailure, @smithbh, @OrfeoTerkuci, @deuza, @tm-const,
@Elhard1, @ttulttul
2026-03-26 05:58:04 -06:00

42 lines
1.5 KiB
TypeScript

import { describe, expect, it } from 'vitest';
import {
getMeshTerminalWriteLockReason,
isMeshTerminalWriteCommand,
} from '@/lib/meshTerminalPolicy';
describe('mesh terminal policy', () => {
it('blocks sensitive terminal writes while anonymous mode is active', () => {
const reason = getMeshTerminalWriteLockReason({
wormholeRequired: true,
wormholeReady: true,
anonymousMode: true,
anonymousModeReady: true,
});
expect(reason).toContain('Anonymous Infonet mode');
expect(isMeshTerminalWriteCommand('dm', ['add', '!sb_test'])).toBe(true);
expect(isMeshTerminalWriteCommand('mesh', ['send', 'hello'])).toBe(true);
});
it('blocks sensitive terminal writes until Wormhole secure mode is ready', () => {
const reason = getMeshTerminalWriteLockReason({
wormholeRequired: true,
wormholeReady: false,
anonymousMode: false,
anonymousModeReady: false,
});
expect(reason).toContain('until Wormhole secure mode is ready');
expect(isMeshTerminalWriteCommand('gate', ['create', 'newsroom'])).toBe(true);
expect(isMeshTerminalWriteCommand('send', ['broadcast', 'hello'])).toBe(true);
});
it('keeps read-only terminal commands available', () => {
expect(isMeshTerminalWriteCommand('status', [])).toBe(false);
expect(isMeshTerminalWriteCommand('signals', ['10'])).toBe(false);
expect(isMeshTerminalWriteCommand('mesh', ['listen', '20'])).toBe(false);
expect(isMeshTerminalWriteCommand('messages', [])).toBe(false);
});
});