Retry Matrix capture after chat login redirect
This commit is contained in:
1 parent
bffda95251
commit
d2b3a1b31d
2 files changed
+55
-7
No files matched your search
@@ -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);
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user