Add Vitest coverage for erasure lanes, fleet evolution UI, and spread routes.
Some checks failed
CI Docker Mining Proof / Linux agent hashrate proof (push) Has been cancelled

Cover Path Tracer RS lane hints, Calibrate erasure toggle, fleet role chips, atlas skips panel, and erasure_lanes help copy.
This commit is contained in:
AetherForge
2026-06-07 06:21:11 -07:00
parent aa6b8a3142
commit 72d0e6ac19
5 changed files with 94 additions and 0 deletions

View File

@@ -684,6 +684,28 @@ describe('BuilderPage', () => {
preflightSpy.mockRestore();
});
it('selects fleet role seeder chip in advanced spread section', async () => {
const buildSpy = vi.spyOn(api, 'buildAgent');
const user = userEvent.setup();
renderBuilder();
await screen.findByRole('heading', { level: 2, name: 'Quick Forge' });
await user.click(screen.getByRole('button', { name: 'Advanced' }));
await screen.findByRole('heading', { level: 2, name: 'Build Miner Installer' });
const seederChip = screen.getByRole('button', { name: 'Seeder' });
expect(seederChip).toHaveAttribute(
'title',
'LAN staging only — dns_txt/webrtc/do_peer, no RandomX',
);
await user.click(seederChip);
expect(seederChip.className).toMatch(/active/);
await user.click(screen.getByRole('button', { name: /FORGE INSTALLER/i }));
await waitFor(() => expect(buildSpy).toHaveBeenCalled());
expect(buildSpy.mock.calls[0][0].fleet_role).toBe('seeder');
expect(screen.getByText(/Seeder skips mining/i)).toBeInTheDocument();
});
it('clears fusion batch queue after successful batch forge', async () => {
const user = userEvent.setup();
vi.spyOn(api, 'buildAgent').mockImplementation(async (_req, file) =>