mtcute/packages/test/src/transport.test.ts

45 lines
1.5 KiB
TypeScript
Raw Normal View History

import { describe, expect, it, vi } from 'vitest'
2023-11-08 17:28:45 +03:00
import { BaseTelegramClient, MemoryStorage } from '@mtcute/core'
2023-11-08 17:28:45 +03:00
import { defaultCryptoProvider } from './platform.js'
import { createStub } from './stub.js'
import { StubTelegramTransport } from './transport.js'
2023-11-08 17:28:45 +03:00
describe('transport stub', () => {
it('should correctly intercept calls', async () => {
const log: string[] = []
const client = new BaseTelegramClient({
apiId: 0,
apiHash: '',
logLevel: 0,
defaultDcs: {
main: createStub('dcOption', { ipAddress: '1.2.3.4', port: 1234 }),
media: createStub('dcOption', { ipAddress: '1.2.3.4', port: 5678 }),
},
storage: new MemoryStorage(),
crypto: defaultCryptoProvider,
2023-11-08 17:28:45 +03:00
transport: () =>
new StubTelegramTransport({
onConnect: (dc, testMode) => {
log.push(`connect ${dc.ipAddress}:${dc.port} test=${testMode}`)
client.close().catch(() => {})
2023-11-08 17:28:45 +03:00
},
onMessage(msg) {
log.push(`message size=${msg.length}`)
},
}),
})
client.connect().catch(() => {}) // ignore "client closed" error
2023-11-08 17:28:45 +03:00
await vi.waitFor(() =>
expect(log).toEqual([
'message size=40', // req_pq_multi
'connect 1.2.3.4:1234 test=false',
]),
)
2023-11-08 17:28:45 +03:00
})
})