From ac398e657a69bc03ed7e98a61d6b323495511d95 Mon Sep 17 00:00:00 2001 From: alina sireneva Date: Mon, 29 Apr 2024 18:10:43 +0300 Subject: [PATCH] test(e2e-deno): use @mtcute/deno in tests --- e2e/deno/cli.sh | 4 ++-- e2e/deno/deno.json | 3 ++- e2e/deno/utils.ts | 8 ++++---- packages/deno/src/sqlite/sqlite.test.ts | 3 +++ packages/node/src/utils/tcp.test.ts | 5 +++-- 5 files changed, 14 insertions(+), 9 deletions(-) diff --git a/e2e/deno/cli.sh b/e2e/deno/cli.sh index e314f000..07c64d6a 100755 --- a/e2e/deno/cli.sh +++ b/e2e/deno/cli.sh @@ -45,7 +45,7 @@ case "$method" in source .env fi - if [ -n "$DOCKER" ]; then + if [ ! -z ${DOCKER+x} ]; then # running behind a socat proxy seems to fix some of the docker networking issues (thx kamillaova) socat TCP-LISTEN:4873,fork,reuseaddr TCP4:jsr:80 & socat_pid=$! @@ -54,7 +54,7 @@ case "$method" in fi export JSR_URL=http://localhost:4873 - if [ -z "$@" ]; then + if [ $# -eq 0 ]; then deno test -A tests/**/*.ts else deno test -A $@ diff --git a/e2e/deno/deno.json b/e2e/deno/deno.json index f1651f62..71f4e17a 100644 --- a/e2e/deno/deno.json +++ b/e2e/deno/deno.json @@ -4,6 +4,7 @@ "@mtcute/wasm": "jsr:@mtcute/wasm@*", "@mtcute/tl": "jsr:@mtcute/tl@*", "@mtcute/tl-runtime": "jsr:@mtcute/tl-runtime@*", - "@mtcute/core": "jsr:@mtcute/core@*" + "@mtcute/core": "jsr:@mtcute/core@*", + "@mtcute/deno": "jsr:@mtcute/deno@*" } } \ No newline at end of file diff --git a/e2e/deno/utils.ts b/e2e/deno/utils.ts index 25711aa8..8714b990 100644 --- a/e2e/deno/utils.ts +++ b/e2e/deno/utils.ts @@ -1,7 +1,7 @@ import { MaybePromise, MemoryStorage } from '@mtcute/core' import { setPlatform } from '@mtcute/core/platform.js' import { LogManager, sleep } from '@mtcute/core/utils.js' -import { WebCryptoProvider, WebPlatform, WebSocketTransport } from '@mtcute/web' +import { DenoCryptoProvider, DenoPlatform, TcpTransport } from '@mtcute/deno' export const getApiParams = (storage?: string) => { if (storage) throw new Error('unsupported yet') @@ -10,7 +10,7 @@ export const getApiParams = (storage?: string) => { throw new Error('API_ID and API_HASH env variables must be set') } - setPlatform(new WebPlatform()) + setPlatform(new DenoPlatform()) return { apiId: parseInt(Deno.env.get('API_ID')!), @@ -18,8 +18,8 @@ export const getApiParams = (storage?: string) => { testMode: true, storage: new MemoryStorage(), logLevel: LogManager.VERBOSE, - transport: () => new WebSocketTransport(), - crypto: new WebCryptoProvider(), + transport: () => new TcpTransport(), + crypto: new DenoCryptoProvider(), } } diff --git a/packages/deno/src/sqlite/sqlite.test.ts b/packages/deno/src/sqlite/sqlite.test.ts index 0a9d9924..499fd46d 100644 --- a/packages/deno/src/sqlite/sqlite.test.ts +++ b/packages/deno/src/sqlite/sqlite.test.ts @@ -9,6 +9,9 @@ import { } from '@mtcute/test' if (import.meta.env.TEST_ENV === 'deno') { + // load sqlite in advance so test runner doesn't complain about us leaking the library + // (it's not on us, @db/sqlite doesn't provide an api to unload the library) + await import('@db/sqlite') const { SqliteStorage } = await import('./index.js') describe('SqliteStorage', () => { diff --git a/packages/node/src/utils/tcp.test.ts b/packages/node/src/utils/tcp.test.ts index 684e3cf4..88b71e3e 100644 --- a/packages/node/src/utils/tcp.test.ts +++ b/packages/node/src/utils/tcp.test.ts @@ -134,7 +134,8 @@ if (import.meta.env.TEST_ENV === 'node') { it('should propagate errors', async () => { const t = await create() - const spyEmit = vi.spyOn(t, 'emit').mockImplementation(() => true) + const spyEmit = vi.fn() + t.on('error', spyEmit) t.connect(defaultProductionDc.main, false) await vi.waitFor(() => expect(t.state()).toEqual(TransportState.Ready)) @@ -147,7 +148,7 @@ if (import.meta.env.TEST_ENV === 'node') { ] onErrorCall[1](new Error('test error')) - expect(spyEmit).toHaveBeenCalledWith('error', new Error('test error')) + expect(spyEmit).toHaveBeenCalledWith(new Error('test error')) }) }) } else {