fix(email): clarify provider capability states

This commit is contained in:
cesnimda
2026-08-10 09:45:30 +02:00
parent 1e514272e1
commit f9e641c23b
2 changed files with 37 additions and 5 deletions
@@ -90,8 +90,9 @@ describe('CorrespondenceInboxPage', () => {
expect(await screen.findByText(/backend engineer/i)).toBeInTheDocument();
expect(screen.getByText(/2 labels/i)).toBeInTheDocument();
expect(screen.getByText(/1 attachments/i)).toBeInTheDocument();
expect(screen.getByText(/Gmail: owner@gmail\.test · Read only/i)).toBeInTheDocument();
expect(screen.getByText(/Outlook: Not connected · Read only/i)).toBeInTheDocument();
expect(screen.getByText(/Gmail: owner@gmail\.test · Read only; reconnect to enable send/i)).toBeInTheDocument();
expect(screen.getByText(/^Outlook: Not connected$/i)).toBeInTheDocument();
expect(screen.queryByText(/Outlook: Not connected.*Read only/i)).not.toBeInTheDocument();
fireEvent.change(screen.getByLabelText(/search/i), { target: { value: 'Maria' } });
fireEvent.mouseDown(screen.getAllByRole('combobox')[0]);
@@ -107,6 +108,20 @@ describe('CorrespondenceInboxPage', () => {
});
});
test('keeps saved correspondence visible when provider status is unavailable', async () => {
const original = mockedApi.get.getMockImplementation();
mockedApi.get.mockImplementation((url: string, config?: any) => {
if (url === '/email/providers') return Promise.reject(new Error('provider status unavailable'));
return original!(url, config);
});
renderPage();
expect(await screen.findByText(/email provider status is temporarily unavailable/i)).toBeInTheDocument();
expect(await screen.findByText(/acme systems/i)).toBeInTheDocument();
expect(screen.getByText(/saved jobtracker correspondence remains available/i)).toBeInTheDocument();
});
test('opens provider-backed plain-text message detail in the hub', async () => {
renderPage();