Improve remote Matrix token refresh
This commit is contained in:
1 parent
b9df8459e3
commit
bffda95251
6 files changed
+226
-14
No files matched your search
@@ -0,0 +1,33 @@
|
||||
import { describe, expect, it, vi } from 'vitest';
|
||||
import type { BrowserContext, Frame } from 'playwright';
|
||||
import { createMockLogger } from './mockLogger.js';
|
||||
import {
|
||||
extractMatrixCredentials,
|
||||
MatrixBrowserLoginRequiredError,
|
||||
} from '../src/services/chat/matrix/token-extractor.js';
|
||||
|
||||
describe('extractMatrixCredentials', () => {
|
||||
it('fails as soon as Reddit redirects the chat page to login', async () => {
|
||||
const handlers = new Map<string, (value: never) => void>();
|
||||
const frame = { url: () => 'https://www.reddit.com/login/?dest=https://www.reddit.com/chat/' } as Frame;
|
||||
const page = {
|
||||
on: vi.fn((event: string, handler: (value: never) => void) => {
|
||||
handlers.set(event, handler);
|
||||
}),
|
||||
mainFrame: vi.fn(() => frame),
|
||||
goto: vi.fn(async () => {
|
||||
handlers.get('framenavigated')?.(frame as never);
|
||||
return null;
|
||||
}),
|
||||
url: vi.fn(() => frame.url()),
|
||||
screenshot: vi.fn(async () => undefined),
|
||||
close: vi.fn(async () => undefined),
|
||||
};
|
||||
const context = { newPage: vi.fn(async () => page) } as unknown as BrowserContext;
|
||||
|
||||
await expect(
|
||||
extractMatrixCredentials(context, createMockLogger(), { timeoutMs: 5_000 }),
|
||||
).rejects.toBeInstanceOf(MatrixBrowserLoginRequiredError);
|
||||
expect(page.screenshot).not.toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user