mirror of
https://github.com/tinyhumansai/openhuman.git
synced 2026-07-27 21:08:00 +00:00
fix(composio): show waiting state before opening browser (#2406)
This commit is contained in:
@@ -292,6 +292,23 @@ describe('<ComposioConnectModal>', () => {
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
it('shows the waiting state even when the OS browser opener rejects', async () => {
|
||||
vi.mocked(composioApi.authorize).mockResolvedValue({
|
||||
connectUrl: 'https://hosted.composio.dev/test-token',
|
||||
connectionId: '',
|
||||
});
|
||||
vi.mocked(composioApi.listConnections).mockResolvedValue({ connections: [] });
|
||||
vi.mocked(openUrlModule.openUrl).mockRejectedValueOnce(new Error('opener unavailable'));
|
||||
|
||||
render(<ComposioConnectModal toolkit={mockToolkit} onClose={() => {}} />);
|
||||
|
||||
fireEvent.click(screen.getByRole('button', { name: /Connect Gmail/ }));
|
||||
|
||||
expect(await screen.findByRole('button', { name: /Reopen browser/i })).toBeInTheDocument();
|
||||
expect(screen.getByText(/Waiting for Gmail/i)).toBeInTheDocument();
|
||||
expect(screen.queryByText(/Something went wrong/i)).not.toBeInTheDocument();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -374,9 +374,13 @@ export default function ComposioConnectModal({
|
||||
resp.connectionId
|
||||
);
|
||||
setConnectUrl(resp.connectUrl);
|
||||
await openUrl(resp.connectUrl);
|
||||
setPhase('waiting');
|
||||
startPolling();
|
||||
try {
|
||||
await openUrl(resp.connectUrl);
|
||||
} catch (openErr) {
|
||||
console.warn('[composio][authorize] failed to open connectUrl:', openErr);
|
||||
}
|
||||
} catch (err) {
|
||||
console.error(
|
||||
'[composio][authorize] failed toolkit=%s slug_check=%s',
|
||||
|
||||
Reference in New Issue
Block a user