fix: resolve workbench final review findings
This commit is contained in:
@@ -11,6 +11,7 @@ describe('ServerLogin', () => {
|
||||
expect(screen.getByLabelText('Email or username')).toBeInTheDocument();
|
||||
expect(screen.getByLabelText('Password')).toBeInTheDocument();
|
||||
expect(screen.getByRole('button', { name: 'Log in' })).toBeInTheDocument();
|
||||
expect(screen.getByRole('status')).toHaveTextContent('Not connected. Enter a server address to continue.');
|
||||
});
|
||||
|
||||
it('normalizes server address and emits login details', async () => {
|
||||
@@ -46,4 +47,20 @@ describe('ServerLogin', () => {
|
||||
|
||||
expect(screen.getByText('Enter an account and password.')).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it.each([
|
||||
['', 'Enter a server address.'],
|
||||
['http:// bad-server', 'Enter a valid HTTP or HTTPS server address.'],
|
||||
])('rejects an invalid server value: %s', async (server, error) => {
|
||||
const onLogin = vi.fn();
|
||||
render(ServerLogin, { props: { apiBase: 'http://localhost:8080', onLogin } });
|
||||
|
||||
await fireEvent.input(screen.getByLabelText('Server IP or domain'), { target: { value: server } });
|
||||
await fireEvent.input(screen.getByLabelText('Email or username'), { target: { value: 'david@example.com' } });
|
||||
await fireEvent.input(screen.getByLabelText('Password'), { target: { value: 'secret' } });
|
||||
await fireEvent.click(screen.getByRole('button', { name: 'Log in' }));
|
||||
|
||||
expect(screen.getByText(error)).toBeInTheDocument();
|
||||
expect(onLogin).not.toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user