Improve portable launch, forge persistence, and operator auth UX.
Persist build extra_files for Build Manager history, print dashboard login on every start, add libp2p for Mesh P2P forge, defer WebSocket until login, and split devrun.bat from LAUNCH.bat with USB deck auto-detection.
This commit is contained in:
@@ -6,6 +6,7 @@ import { cleanup, render, screen, waitFor, fireEvent } from '@testing-library/re
|
||||
import userEvent from '@testing-library/user-event';
|
||||
import { MemoryRouter } from 'react-router-dom';
|
||||
import { type ReactNode } from 'react';
|
||||
import { routerFuture } from '../routerFuture';
|
||||
import { mockAgent, mockServerInfo } from '../test/fixtures';
|
||||
import { api } from '../api/client';
|
||||
import { downloadApiFile, downloadAuthedFile } from '../api/download';
|
||||
@@ -169,7 +170,9 @@ describe('DownloadButton', () => {
|
||||
);
|
||||
const btn = screen.getByRole('button', { name: 'Save' });
|
||||
await userEvent.setup().click(btn);
|
||||
expect(screen.getByRole('button', { name: 'Downloading…' })).toBeDisabled();
|
||||
await waitFor(() => {
|
||||
expect(screen.getByRole('button', { name: 'Downloading…' })).toBeDisabled();
|
||||
});
|
||||
await waitFor(() => expect(downloadApiFileMock).toHaveBeenCalledWith('/api/x', 'a.bin'));
|
||||
});
|
||||
|
||||
@@ -645,7 +648,7 @@ describe('VisualComponents', () => {
|
||||
|
||||
it('ForgeCalibrateCompare links to routes', () => {
|
||||
render(
|
||||
<MemoryRouter>
|
||||
<MemoryRouter future={routerFuture}>
|
||||
<ForgeCalibrateCompare />
|
||||
</MemoryRouter>
|
||||
);
|
||||
@@ -697,7 +700,7 @@ describe('SystemStatusBar', () => {
|
||||
|
||||
it('shows server and fleet pills after poll', async () => {
|
||||
render(
|
||||
<MemoryRouter>
|
||||
<MemoryRouter future={routerFuture}>
|
||||
<SystemStatusBar />
|
||||
</MemoryRouter>
|
||||
);
|
||||
@@ -780,7 +783,7 @@ describe('Layout', () => {
|
||||
|
||||
it('renders nav links and children', async () => {
|
||||
render(
|
||||
<MemoryRouter initialEntries={['/dashboard']}>
|
||||
<MemoryRouter initialEntries={['/dashboard']} future={routerFuture}>
|
||||
<Layout>
|
||||
<div>page body</div>
|
||||
</Layout>
|
||||
|
||||
Reference in New Issue
Block a user