Retry Matrix capture after chat login redirect

This commit is contained in:
jjbrunton committed 2026-08-08 14:34:10 +01:00
1 parent bffda95251
commit d2b3a1b31d
2 files changed
+55 -7

No files matched your search

+20
View File
@@ -5,6 +5,7 @@ import {
MatrixRemoteLoginRequiredError,
MatrixTokenRefresher,
} from '../src/services/chat/matrix/token-refresher.js';
import { MatrixBrowserLoginRequiredError } from '../src/services/chat/matrix/token-extractor.js';
import type { MatrixCredentials } from '../src/services/chat/matrix/types.js';
const credentials: MatrixCredentials = {
@@ -75,4 +76,23 @@ describe('MatrixTokenRefresher', () => {
expect(applyCredentials).toHaveBeenCalledOnce();
});
it('repairs and retries when chat redirects to login despite a valid Reddit API session', async () => {
const { refresher, browser, context, extract, applyCredentials } = setup({
sessionValid: true,
loginSucceeds: true,
});
extract
.mockRejectedValueOnce(
new MatrixBrowserLoginRequiredError('https://www.reddit.com/login/?dest=/chat/'),
)
.mockResolvedValueOnce(credentials);
await refresher.refresh();
expect(browser.login).toHaveBeenCalledOnce();
expect(extract).toHaveBeenCalledTimes(2);
expect(extract).toHaveBeenNthCalledWith(2, context, expect.anything());
expect(applyCredentials).toHaveBeenCalledWith(credentials);
});
});