Files
AetherForge/server/web/src/help/uiHelp.test.ts
AetherForge 7784608c53
Some checks failed
CI Docker Mining Proof / Linux agent hashrate proof (push) Has been cancelled
Add Fleet discoveries panel to Deploy Recon for uninfected hosts.
Merges agent subnet recon with manual scans, filters by subnet/port, and live-updates via subnet_discovery_update WS.
2026-06-07 11:38:57 -07:00

137 lines
3.6 KiB
TypeScript

import { describe, expect, it } from 'vitest';
import { UI_HELP } from './uiHelp';
describe('UI_HELP', () => {
const requiredKeys = [
'dash_fleet_health',
'dash_install_funnel',
'dash_operator_audit',
'dash_signal_locked',
'dash_advanced_mode',
'dash_raw_stream',
'dash_fleet_hash',
'dash_est_daily',
'dash_accept_rate',
'dash_nodes_live',
'dash_fleet_pipeline',
'dash_pool_stratum',
'dash_ai_activity',
'dash_gpu_rvn',
'dash_xmr_section',
'crucible_node_roster',
'crucible_heat_map',
'crucible_groups',
'crucible_active_target',
'crucible_tab_ops',
'crucible_tab_recon',
'crucible_tab_files',
'crucible_tab_spread',
'crucible_tab_tunnels',
'crucible_mining_ops',
'crucible_access_depth',
'crucible_access_depth_calibrate',
'crucible_resume',
'crucible_pause',
'crucible_full_audit',
'crucible_posture_badge',
'crucible_vpc_seeder',
'crucible_master_terminal',
'crucible_section_agent',
'crucible_section_system',
'crucible_section_persistence',
'crucible_section_maintenance',
'crucible_section_intel',
'crucible_section_security',
'crucible_section_network',
'crucible_section_media',
'crucible_section_files_quick',
'crucible_section_files_advanced',
'crucible_section_destructive',
'crucible_section_spread',
'crucible_section_cred_graph',
'crucible_section_service_graph',
'crucible_section_seek',
'crucible_section_ssh',
'crucible_section_tunnels',
'crucible_section_protocol_tunnel',
'crucible_section_portfwd',
'bm_pin_dropper',
'bm_public_build',
'bm_dropper_oneliner',
'bm_reforge',
'bm_platform_badge',
'fm_remote_browse',
'fm_upload',
'fm_encrypt_path',
'pt_path_tracer',
'pt_agent_chain',
'pt_onion_timeline',
'pt_subnet_autopsy',
'fleet_runtime_policy',
'fleet_runtime_modules',
'spread_funnel_widget',
'subnet_immune_autopsy',
'md_overview',
'md_operation_chip',
'md_spread_profile',
'md_campaign_identity',
'md_strike_pipeline',
'md_equip_strike',
'md_loadout_preview',
'md_campaign_slug',
'md_preflight',
'ew_overview',
'ew_campaign_setup',
'ew_campaign_slug',
'ew_install_links',
'ew_spread_kit',
'ew_war_room',
'ew_supply_chain',
'ew_public_urls',
'ew_techniques',
'ew_shared_notes',
'ew_war_room_funnel',
'ew_war_room_views',
'ew_war_room_funnel_board',
'ew_war_room_stats_table',
'ew_war_room_constellations',
'ew_war_room_leak',
'ew_cloud_aws',
'ew_cloud_generic',
'ew_crucible_recon_link',
'crucible_recon_host',
'crucible_btn_spread_now',
'crucible_btn_subnet_scan',
'crucible_btn_hole_punch',
'crucible_btn_cf_tunnel',
'fl_filter_chips',
'fl_bulk_actions',
'fl_groups',
'set_alerts',
'set_alert_notifications',
'set_webhook',
'ui_color_scheme',
'crucible_section_spread_templates',
'dr_overview',
'dr_port_matrix',
'dr_path_prefix',
'dr_fleet_discoveries',
'dr_fleet_subnet_filter',
'dr_fleet_port_filter',
'dr_fleet_sort',
] as const;
it('defines help for every documented UI key', () => {
expect(Object.keys(UI_HELP).sort()).toEqual([...requiredKeys].sort());
});
it('each entry is a complete non-empty blurb', () => {
for (const key of requiredKeys) {
const text = UI_HELP[key];
expect(typeof text).toBe('string');
expect(text.trim().length).toBeGreaterThan(20);
expect(text).not.toMatch(/coming soon|TODO|TBD/i);
}
});
});