feat: alive UI wave, galaxy presence, spread and fleet enhancements
Some checks failed
CI Docker Mining Proof / Linux agent hashrate proof (push) Has been cancelled

Dashboard ambient layer, comrade presence, Mission Deck and War Room, Emberwake supply chain, spread/docs publishing, fleet policy and modules API, CI docker mining, and refreshed USB pack.
This commit is contained in:
AetherForge
2026-06-04 22:36:17 -07:00
parent 1551bd5dad
commit a32860b0d9
154 changed files with 17383 additions and 601 deletions

View File

@@ -0,0 +1,57 @@
import { describe, it, expect } from 'vitest';
import {
MISSION_WIZARD_STEPS,
MISSION_OPERATION_CHIPS,
canAdvanceWizardStep,
missionChipForMode,
nextWizardStep,
operationModeForChip,
prevWizardStep,
wizardPillStatus,
wizardStepIndex,
} from './forgeMissionWizard';
describe('forgeMissionWizard', () => {
it('defines three ritual wizard steps', () => {
expect(MISSION_WIZARD_STEPS).toEqual(['mode', 'profile', 'launch']);
expect(MISSION_OPERATION_CHIPS.map((c) => c.label)).toEqual(['Ghost', 'Loud', 'Spread']);
});
it('maps operation chips to forge modes', () => {
expect(operationModeForChip('ghost')).toBe('ghost_walk');
expect(operationModeForChip('loud')).toBe('open_flame');
expect(operationModeForChip('spread')).toBe('wildfire');
});
it('reverse-maps operation modes to wizard chips', () => {
expect(missionChipForMode('ghost_walk')).toBe('ghost');
expect(missionChipForMode('sigil_mask')).toBe('ghost');
expect(missionChipForMode('open_flame')).toBe('loud');
expect(missionChipForMode('wildfire')).toBe('spread');
expect(missionChipForMode('crucible_storm')).toBe('spread');
});
it('navigates wizard steps forward and back', () => {
expect(nextWizardStep('mode')).toBe('profile');
expect(nextWizardStep('profile')).toBe('launch');
expect(nextWizardStep('launch')).toBeNull();
expect(prevWizardStep('launch')).toBe('profile');
expect(prevWizardStep('profile')).toBe('mode');
expect(prevWizardStep('mode')).toBeNull();
});
it('allows advancing from mode and profile steps', () => {
expect(canAdvanceWizardStep('mode', 'ghost', '')).toBe(true);
expect(canAdvanceWizardStep('profile', 'spread', '')).toBe(true);
expect(canAdvanceWizardStep('profile', 'spread', 'lan_kindling')).toBe(true);
expect(canAdvanceWizardStep('launch', 'ghost', '')).toBe(false);
});
it('tracks wizard pill status for step pills', () => {
expect(wizardPillStatus('mode', 'mode')).toBe('active');
expect(wizardPillStatus('mode', 'profile')).toBe('done');
expect(wizardPillStatus('profile', 'mode')).toBe('pending');
expect(wizardPillStatus('launch', 'launch')).toBe('active');
expect(wizardStepIndex('launch')).toBe(2);
});
});