@vvlad1973/telegram-bot-client 1.2.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.local.json +7 -0
- package/README.md +300 -273
- package/dist/agents/LongPollingManager.d.ts +5 -6
- package/dist/agents/LongPollingManager.js +48 -46
- package/dist/agents/LongPollingManager.js.map +1 -1
- package/dist/agents/types/polling-manager.types.d.ts +4 -4
- package/dist/agents/workers/WorkerClientFactory.js +3 -3
- package/dist/agents/workers/WorkerClientFactory.js.map +1 -1
- package/dist/agents/workers/long-polling-worker-test.js +2 -1
- package/dist/agents/workers/long-polling-worker-test.js.map +1 -1
- package/dist/api/BaseTelegramApi.generated.js +481 -0
- package/dist/api/BaseTelegramApi.generated.js.map +1 -1
- package/dist/client/TelegramBotClient.d.ts +15 -4
- package/dist/client/TelegramBotClient.js +17 -4
- package/dist/client/TelegramBotClient.js.map +1 -1
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/managers/PollingIntegrationManager.d.ts +160 -0
- package/dist/client/managers/PollingIntegrationManager.js +274 -0
- package/dist/client/managers/PollingIntegrationManager.js.map +1 -0
- package/dist/client/managers/RouteConfigManager.d.ts +186 -0
- package/dist/client/managers/RouteConfigManager.js +395 -0
- package/dist/client/managers/RouteConfigManager.js.map +1 -0
- package/dist/client/managers/RouteLifecycleManager.d.ts +146 -0
- package/dist/client/managers/RouteLifecycleManager.js +402 -0
- package/dist/client/managers/RouteLifecycleManager.js.map +1 -0
- package/dist/client/managers/index.d.ts +11 -0
- package/dist/client/managers/index.js +10 -0
- package/dist/client/managers/index.js.map +1 -0
- package/dist/helpers/index.d.ts +1 -0
- package/dist/helpers/index.js +2 -0
- package/dist/helpers/index.js.map +1 -1
- package/dist/helpers/logger-helpers.d.ts +2 -5
- package/dist/helpers/logger-helpers.js +2 -10
- package/dist/helpers/logger-helpers.js.map +1 -1
- package/dist/helpers/logging-decorators.d.ts +43 -0
- package/dist/helpers/logging-decorators.js +156 -0
- package/dist/helpers/logging-decorators.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -3
- package/dist/index.js.map +1 -1
- package/dist/queue/InMemoryQueueProvider.d.ts +2 -2
- package/dist/queue/InMemoryQueueProvider.js +2 -2
- package/dist/queue/InMemoryQueueProvider.js.map +1 -1
- package/dist/transport/TelegramHttpClient.d.ts +2 -2
- package/dist/transport/TelegramHttpClient.js +2 -2
- package/dist/transport/TelegramHttpClient.js.map +1 -1
- package/dist/transport/TelegramHttpTransport.d.ts +2 -2
- package/dist/transport/TelegramHttpTransport.js +3 -4
- package/dist/transport/TelegramHttpTransport.js.map +1 -1
- package/dist/transport/TelegramTransport.d.ts +2 -2
- package/dist/transport/TelegramTransport.js +23 -7
- package/dist/transport/TelegramTransport.js.map +1 -1
- package/dist/transport/TokensManager.d.ts +2 -2
- package/dist/transport/TokensManager.js +6 -6
- package/dist/transport/TokensManager.js.map +1 -1
- package/dist/transport/index.d.ts +0 -1
- package/dist/transport/index.js +1 -3
- package/dist/transport/index.js.map +1 -1
- package/dist/types/logger.types.d.ts +3 -9
- package/dist/types/route.types.d.ts +110 -0
- package/dist/types/route.types.js +19 -0
- package/dist/types/route.types.js.map +1 -0
- package/dist/types/transport.types.d.ts +3 -1
- package/package.json +1 -1
- package/test_output.txt +256 -0
|
@@ -20,8 +20,8 @@ export interface TokensManagerOptions extends LoggerOptions {
|
|
|
20
20
|
export declare class TokensManager implements TokensData, ILoggerAware {
|
|
21
21
|
private tokens;
|
|
22
22
|
private defaultTokenId?;
|
|
23
|
-
/** Logger instance */
|
|
24
|
-
|
|
23
|
+
/** Logger instance - mutable to support LoggerBinder.bind() */
|
|
24
|
+
logger?: ILogger;
|
|
25
25
|
/**
|
|
26
26
|
* Create a new TokensManager instance
|
|
27
27
|
* @param options - Configuration options or initial tokens map (for backward compatibility)
|
|
@@ -11,7 +11,7 @@ import { initializeLogger } from '../helpers/logger-helpers.js';
|
|
|
11
11
|
export class TokensManager {
|
|
12
12
|
tokens = new Map();
|
|
13
13
|
defaultTokenId;
|
|
14
|
-
/** Logger instance */
|
|
14
|
+
/** Logger instance - mutable to support LoggerBinder.bind() */
|
|
15
15
|
logger;
|
|
16
16
|
/**
|
|
17
17
|
* Create a new TokensManager instance
|
|
@@ -28,7 +28,7 @@ export class TokensManager {
|
|
|
28
28
|
}
|
|
29
29
|
else if (options) {
|
|
30
30
|
// New options-based initialization
|
|
31
|
-
this.logger = initializeLogger(this, options.
|
|
31
|
+
this.logger = initializeLogger(this, options.logger);
|
|
32
32
|
if (options.initialTokens) {
|
|
33
33
|
this.tokens = new Map(options.initialTokens);
|
|
34
34
|
}
|
|
@@ -36,7 +36,7 @@ export class TokensManager {
|
|
|
36
36
|
this.defaultTokenId = options.defaultTokenId;
|
|
37
37
|
}
|
|
38
38
|
if (this.logger && this.logger.info) {
|
|
39
|
-
this.logger.info(
|
|
39
|
+
this.logger.info(`TokensManager initialized with ${this.tokens.size} token(s)${this.defaultTokenId ? ` (default: ${this.defaultTokenId})` : ''}`);
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
}
|
|
@@ -63,7 +63,7 @@ export class TokensManager {
|
|
|
63
63
|
this.defaultTokenId = tokenId;
|
|
64
64
|
}
|
|
65
65
|
if (this.logger && this.logger.info) {
|
|
66
|
-
this.logger.info({
|
|
66
|
+
this.logger.info(`Token ${tokenId} added${isFirst ? ' (set as default)' : ''} - total: ${this.tokens.size}`);
|
|
67
67
|
}
|
|
68
68
|
return true;
|
|
69
69
|
}
|
|
@@ -99,7 +99,7 @@ export class TokensManager {
|
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
101
|
if (this.logger && this.logger.info) {
|
|
102
|
-
this.logger.info({
|
|
102
|
+
this.logger.info(`Token ${tokenId} removed${wasDefault && newDefaultId ? ` (new default: ${newDefaultId})` : ''} - total: ${this.tokens.size}`);
|
|
103
103
|
}
|
|
104
104
|
return true;
|
|
105
105
|
}
|
|
@@ -126,7 +126,7 @@ export class TokensManager {
|
|
|
126
126
|
const oldDefaultId = this.defaultTokenId;
|
|
127
127
|
this.defaultTokenId = tokenId;
|
|
128
128
|
if (this.logger && this.logger.info) {
|
|
129
|
-
this.logger.info(
|
|
129
|
+
this.logger.info(`Default token changed${oldDefaultId ? ` from ${oldDefaultId}` : ''} to ${tokenId}`);
|
|
130
130
|
}
|
|
131
131
|
return true;
|
|
132
132
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokensManager.js","sourceRoot":"","sources":["../../src/transport/TokensManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,CAAC;AAIb,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAYhE;;;GAGG;AACH,MAAM,OAAO,aAAa;IAChB,MAAM,GAAqB,IAAI,GAAG,EAAkB,CAAC;IACrD,cAAc,CAAU;IAEhC
|
|
1
|
+
{"version":3,"file":"TokensManager.js","sourceRoot":"","sources":["../../src/transport/TokensManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,4 +8,3 @@
|
|
|
8
8
|
export { TelegramHttpClient, TelegramHttpError } from './TelegramHttpClient.js';
|
|
9
9
|
export { TokensManager, type TokensManagerOptions } from './TokensManager.js';
|
|
10
10
|
export { TelegramTransport, type TelegramTransportOptions } from './TelegramTransport.js';
|
|
11
|
-
export { TelegramHttpTransport, type TelegramHttpTransportOptions } from './TelegramHttpTransport.js';
|
package/dist/transport/index.js
CHANGED
|
@@ -8,8 +8,6 @@
|
|
|
8
8
|
'use strict';
|
|
9
9
|
export { TelegramHttpClient, TelegramHttpError } from './TelegramHttpClient.js';
|
|
10
10
|
export { TokensManager } from './TokensManager.js';
|
|
11
|
-
//
|
|
11
|
+
// Universal transport
|
|
12
12
|
export { TelegramTransport } from './TelegramTransport.js';
|
|
13
|
-
// Backward compatibility: Keep old transport class
|
|
14
|
-
export { TelegramHttpTransport } from './TelegramHttpTransport.js';
|
|
15
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transport/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,YAAY,CAAC;AAEb,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAE,aAAa,EAA6B,MAAM,oBAAoB,CAAC;AAE9E,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transport/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,YAAY,CAAC;AAEb,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAE,aAAa,EAA6B,MAAM,oBAAoB,CAAC;AAE9E,sBAAsB;AACtB,OAAO,EACL,iBAAiB,EAElB,MAAM,wBAAwB,CAAC"}
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
* @module types/logger
|
|
5
5
|
*/
|
|
6
6
|
import type { ExternalLogger } from '@vvlad1973/simple-logger';
|
|
7
|
-
import type { LoggerBinder } from '@vvlad1973/logger-tree';
|
|
8
7
|
/**
|
|
9
8
|
* Logger interface alias for convenience
|
|
10
9
|
*/
|
|
@@ -15,19 +14,14 @@ export type ILogger = ExternalLogger;
|
|
|
15
14
|
export interface LoggerOptions {
|
|
16
15
|
/** Logger instance to use */
|
|
17
16
|
logger?: ILogger;
|
|
18
|
-
/** Logger binder for automatic binding */
|
|
19
|
-
loggerBinder?: LoggerBinder;
|
|
20
|
-
/** Logger name for automatic creation */
|
|
21
|
-
loggerName?: string;
|
|
22
|
-
/** Message prefix for logger output */
|
|
23
|
-
msgPrefix?: string;
|
|
24
17
|
}
|
|
25
18
|
/**
|
|
26
19
|
* Interface for components that support logger integration
|
|
20
|
+
* Compatible with LoggerAware from @vvlad1973/logger-tree
|
|
27
21
|
*/
|
|
28
22
|
export interface ILoggerAware {
|
|
29
|
-
/** Logger instance */
|
|
30
|
-
|
|
23
|
+
/** Logger instance - mutable to support LoggerBinder.bind() */
|
|
24
|
+
logger?: ILogger;
|
|
31
25
|
}
|
|
32
26
|
/**
|
|
33
27
|
* Helper type for constructor options with logger support
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types for route configuration and management
|
|
3
|
+
*
|
|
4
|
+
* @module types/route
|
|
5
|
+
*/
|
|
6
|
+
import type { User } from '../api/types/User.generated.js';
|
|
7
|
+
import type { InputFile } from '../api/types/InputFile.generated.js';
|
|
8
|
+
import type { WebhookInfo } from '../api/types/WebhookInfo.generated.js';
|
|
9
|
+
/**
|
|
10
|
+
* Route operation mode
|
|
11
|
+
*/
|
|
12
|
+
export declare enum RouteMode {
|
|
13
|
+
/** Webhook mode - receive updates via webhook */
|
|
14
|
+
Webhook = "webhook",
|
|
15
|
+
/** Long polling mode - fetch updates via getUpdates */
|
|
16
|
+
LongPolling = "longPolling",
|
|
17
|
+
/** Inactive mode - route is disabled */
|
|
18
|
+
Inactive = "inactive"
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Route status information
|
|
22
|
+
*/
|
|
23
|
+
export interface RouteStatus {
|
|
24
|
+
/** Current operation mode */
|
|
25
|
+
mode: RouteMode;
|
|
26
|
+
/** Is route active */
|
|
27
|
+
active: boolean;
|
|
28
|
+
/** Webhook info (if in webhook mode) */
|
|
29
|
+
webhookInfo?: WebhookInfo;
|
|
30
|
+
/** Last update ID (if in longPolling mode) */
|
|
31
|
+
lastUpdateId?: number;
|
|
32
|
+
/** Bot information */
|
|
33
|
+
botInfo?: User;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Webhook configuration for a route
|
|
37
|
+
*/
|
|
38
|
+
export interface WebhookConfig {
|
|
39
|
+
/**
|
|
40
|
+
* Full webhook URL (absolute URL)
|
|
41
|
+
* If specified, takes precedence over path
|
|
42
|
+
* Example: 'https://example.com/webhook/bot1'
|
|
43
|
+
*/
|
|
44
|
+
url?: string;
|
|
45
|
+
/**
|
|
46
|
+
* Webhook path (relative path, combined with webhookBaseUrl from TelegramBotClient)
|
|
47
|
+
* Used when url is not specified
|
|
48
|
+
* Example: '/bot1' -> combined with 'https://example.com/webhooks' -> 'https://example.com/webhooks/bot1'
|
|
49
|
+
*/
|
|
50
|
+
path?: string;
|
|
51
|
+
/** Secret token for webhook validation */
|
|
52
|
+
secretToken?: string;
|
|
53
|
+
/** Max simultaneous connections (1-100, default: 40) */
|
|
54
|
+
maxConnections?: number;
|
|
55
|
+
/** Allowed update types */
|
|
56
|
+
allowedUpdates?: string[];
|
|
57
|
+
/** Drop pending updates when setting webhook */
|
|
58
|
+
dropPendingUpdates?: boolean;
|
|
59
|
+
/** Fixed IP address for webhook */
|
|
60
|
+
ipAddress?: string;
|
|
61
|
+
/** Certificate for self-signed webhook */
|
|
62
|
+
certificate?: InputFile;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Long polling configuration
|
|
66
|
+
*/
|
|
67
|
+
export interface LongPollingConfig {
|
|
68
|
+
/** Polling interval in milliseconds (default: 1000) */
|
|
69
|
+
interval?: number;
|
|
70
|
+
/** Timeout for long polling request in seconds (default: 30) */
|
|
71
|
+
timeout?: number;
|
|
72
|
+
/** Limit of updates to fetch (1-100, default: 100) */
|
|
73
|
+
limit?: number;
|
|
74
|
+
/** Allowed update types */
|
|
75
|
+
allowedUpdates?: string[];
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Configuration for a bot route
|
|
79
|
+
*/
|
|
80
|
+
export interface RouteConfig {
|
|
81
|
+
/** Bot token */
|
|
82
|
+
token: string;
|
|
83
|
+
/** Initial operation mode (default: inactive) */
|
|
84
|
+
mode?: RouteMode;
|
|
85
|
+
/** Webhook configuration (for webhook mode) */
|
|
86
|
+
webhook?: WebhookConfig;
|
|
87
|
+
/** Long polling configuration (for longPolling mode) */
|
|
88
|
+
longPolling?: LongPollingConfig;
|
|
89
|
+
/** Auto-activate on init (default: true) */
|
|
90
|
+
autoActivate?: boolean;
|
|
91
|
+
/** Cached bot info (set after init) */
|
|
92
|
+
botInfo?: User;
|
|
93
|
+
/** Current route status (managed internally) */
|
|
94
|
+
status?: RouteStatus;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Default values for webhook configuration
|
|
98
|
+
*/
|
|
99
|
+
export interface WebhookDefaults {
|
|
100
|
+
/** Default secret token for all routes */
|
|
101
|
+
secretToken?: string;
|
|
102
|
+
/** Default max connections (1-100) */
|
|
103
|
+
maxConnections?: number;
|
|
104
|
+
/** Default allowed update types */
|
|
105
|
+
allowedUpdates?: string[];
|
|
106
|
+
/** Default drop pending updates flag */
|
|
107
|
+
dropPendingUpdates?: boolean;
|
|
108
|
+
/** Default IP address */
|
|
109
|
+
ipAddress?: string;
|
|
110
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types for route configuration and management
|
|
3
|
+
*
|
|
4
|
+
* @module types/route
|
|
5
|
+
*/
|
|
6
|
+
'use strict';
|
|
7
|
+
/**
|
|
8
|
+
* Route operation mode
|
|
9
|
+
*/
|
|
10
|
+
export var RouteMode;
|
|
11
|
+
(function (RouteMode) {
|
|
12
|
+
/** Webhook mode - receive updates via webhook */
|
|
13
|
+
RouteMode["Webhook"] = "webhook";
|
|
14
|
+
/** Long polling mode - fetch updates via getUpdates */
|
|
15
|
+
RouteMode["LongPolling"] = "longPolling";
|
|
16
|
+
/** Inactive mode - route is disabled */
|
|
17
|
+
RouteMode["Inactive"] = "inactive";
|
|
18
|
+
})(RouteMode || (RouteMode = {}));
|
|
19
|
+
//# sourceMappingURL=route.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route.types.js","sourceRoot":"","sources":["../../src/types/route.types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,CAAC;AAMb;;GAEG;AACH,MAAM,CAAN,IAAY,SASX;AATD,WAAY,SAAS;IACnB,iDAAiD;IACjD,gCAAmB,CAAA;IAEnB,uDAAuD;IACvD,wCAA2B,CAAA;IAE3B,wCAAwC;IACxC,kCAAqB,CAAA;AACvB,CAAC,EATW,SAAS,KAAT,SAAS,QASpB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ILoggerAware } from './logger.types.js';
|
|
1
2
|
export type TokensDictionary = Map<string, string>;
|
|
2
3
|
/**
|
|
3
4
|
* Method priority configuration for queue-based transport
|
|
@@ -39,8 +40,9 @@ export interface TransportRequestOptions {
|
|
|
39
40
|
/**
|
|
40
41
|
* Transport interface for Telegram API communication
|
|
41
42
|
* Supports both direct HTTP and queue-based modes
|
|
43
|
+
* Extends ILoggerAware for LoggerBinder compatibility
|
|
42
44
|
*/
|
|
43
|
-
export interface ITransport {
|
|
45
|
+
export interface ITransport extends ILoggerAware {
|
|
44
46
|
/**
|
|
45
47
|
* Execute a transport request
|
|
46
48
|
* @param options - Request options
|
package/package.json
CHANGED
package/test_output.txt
ADDED
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
|
|
2
|
+
> @vvlad1973/telegram-bot-client@1.3.0 test
|
|
3
|
+
> vitest
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
[1m[46m RUN [49m[22m [36mv4.0.16 [39m[90mc:/Repositories/lib/@vvlad1973/telegram-bot[39m
|
|
7
|
+
|
|
8
|
+
[32m✓[39m src/__test__/errors/TelegramError.test.ts [2m([22m[2m41 tests[22m[2m)[22m[32m 16[2mms[22m[39m
|
|
9
|
+
[32m✓[39m src/__test__/client/managers/RouteLifecycleManager.test.ts [2m([22m[2m36 tests[22m[2m)[22m[32m 29[2mms[22m[39m
|
|
10
|
+
[32m✓[39m src/__test__/client/managers/PollingIntegrationManager.test.ts [2m([22m[2m31 tests[22m[2m)[22m[32m 63[2mms[22m[39m
|
|
11
|
+
[32m✓[39m src/__test__/client/managers/RouteConfigManager.test.ts [2m([22m[2m44 tests[22m[2m)[22m[32m 96[2mms[22m[39m
|
|
12
|
+
[32m✓[39m src/__test__/builders/InlineKeyboardBuilder.test.ts [2m([22m[2m62 tests[22m[2m)[22m[32m 21[2mms[22m[39m
|
|
13
|
+
[90mstdout[2m | src/__test__/queue/InMemoryQueueProvider.test.ts[2m > [22m[2mInMemoryQueueProvider[2m > [22m[2mconstructor[2m > [22m[2mshould create provider with custom config
|
|
14
|
+
[22m[39m[InMemoryQueueProvider] Initialized with config: { globalLimit: [33m50[39m, queueLimit: [33m2[39m, concurrency: [33m3[39m, debug: [33mtrue[39m }
|
|
15
|
+
|
|
16
|
+
[90mstdout[2m | src/__test__/queue/InMemoryQueueProvider.test.ts[2m > [22m[2mInMemoryQueueProvider[2m > [22m[2menqueue[2m > [22m[2mshould enqueue and execute task
|
|
17
|
+
[22m[39m[2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
|
|
18
|
+
|
|
19
|
+
[90mstdout[2m | src/__test__/queue/InMemoryQueueProvider.test.ts[2m > [22m[2mInMemoryQueueProvider[2m > [22m[2menqueue[2m > [22m[2mshould enqueue task with priority
|
|
20
|
+
[22m[39m[2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
|
|
21
|
+
|
|
22
|
+
[90mstdout[2m | src/__test__/queue/InMemoryQueueProvider.test.ts[2m > [22m[2mInMemoryQueueProvider[2m > [22m[2menqueue[2m > [22m[2mshould use default priority if not provided
|
|
23
|
+
[22m[39m[2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
|
|
24
|
+
|
|
25
|
+
[90mstdout[2m | src/__test__/queue/InMemoryQueueProvider.test.ts[2m > [22m[2mInMemoryQueueProvider[2m > [22m[2menqueue[2m > [22m[2mshould handle multiple tasks in same queue
|
|
26
|
+
[22m[39m[2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
|
|
27
|
+
|
|
28
|
+
[90mstdout[2m | src/__test__/queue/InMemoryQueueProvider.test.ts[2m > [22m[2mInMemoryQueueProvider[2m > [22m[2menqueue[2m > [22m[2mshould handle tasks in different queues
|
|
29
|
+
[22m[39m[2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
|
|
30
|
+
[2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
|
|
31
|
+
|
|
32
|
+
[90mstdout[2m | src/__test__/queue/InMemoryQueueProvider.test.ts[2m > [22m[2mInMemoryQueueProvider[2m > [22m[2menqueue[2m > [22m[2mshould execute task and update stats
|
|
33
|
+
[22m[39m[2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
|
|
34
|
+
|
|
35
|
+
[90mstdout[2m | src/__test__/queue/InMemoryQueueProvider.test.ts[2m > [22m[2mInMemoryQueueProvider[2m > [22m[2menqueue[2m > [22m[2mshould handle task failure and update stats
|
|
36
|
+
[22m[39m[2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
|
|
37
|
+
|
|
38
|
+
[90mstdout[2m | src/__test__/queue/InMemoryQueueProvider.test.ts[2m > [22m[2mInMemoryQueueProvider[2m > [22m[2menqueue[2m > [22m[2mshould handle serializable tasks with registered handlers
|
|
39
|
+
[22m[39m[2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
|
|
40
|
+
|
|
41
|
+
[90mstdout[2m | src/__test__/queue/InMemoryQueueProvider.test.ts[2m > [22m[2mInMemoryQueueProvider[2m > [22m[2menqueue[2m > [22m[2mshould throw error for unknown task type
|
|
42
|
+
[22m[39m[2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
|
|
43
|
+
|
|
44
|
+
[90mstdout[2m | src/__test__/queue/InMemoryQueueProvider.test.ts[2m > [22m[2mInMemoryQueueProvider[2m > [22m[2mgetStats[2m > [22m[2mshould return stats for existing queue
|
|
45
|
+
[22m[39m[2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
|
|
46
|
+
|
|
47
|
+
[90mstdout[2m | src/__test__/queue/InMemoryQueueProvider.test.ts[2m > [22m[2mInMemoryQueueProvider[2m > [22m[2mgetStats[2m > [22m[2mshould calculate throughput correctly
|
|
48
|
+
[22m[39m[2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
|
|
49
|
+
|
|
50
|
+
[90mstdout[2m | src/__test__/queue/InMemoryQueueProvider.test.ts[2m > [22m[2mInMemoryQueueProvider[2m > [22m[2mclose[2m > [22m[2mshould clear all queues
|
|
51
|
+
[22m[39m[2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
|
|
52
|
+
[2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
|
|
53
|
+
|
|
54
|
+
[90mstdout[2m | src/__test__/queue/InMemoryQueueProvider.test.ts[2m > [22m[2mInMemoryQueueProvider[2m > [22m[2mclose[2m > [22m[2mshould work with debug mode enabled
|
|
55
|
+
[22m[39m[InMemoryQueueProvider] Initialized with config: { globalLimit: [33m30[39m, queueLimit: [33m1[39m, concurrency: [33m1[39m, debug: [33mtrue[39m }
|
|
56
|
+
[InMemoryQueueProvider] Created queue: test-queue
|
|
57
|
+
[InMemoryQueueProvider] Task enqueued to test-queue, priority: 5
|
|
58
|
+
|
|
59
|
+
[90mstdout[2m | src/__test__/queue/InMemoryQueueProvider.test.ts[2m > [22m[2mInMemoryQueueProvider[2m > [22m[2mclose[2m > [22m[2mshould work with debug mode enabled
|
|
60
|
+
[22m[39m[InMemoryQueueProvider] Task completed in test-queue
|
|
61
|
+
|
|
62
|
+
[90mstdout[2m | src/__test__/queue/InMemoryQueueProvider.test.ts[2m > [22m[2mInMemoryQueueProvider[2m > [22m[2mclose[2m > [22m[2mshould work with debug mode enabled
|
|
63
|
+
[22m[39m[InMemoryQueueProvider] Closing all queues
|
|
64
|
+
[2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
|
|
65
|
+
[InMemoryQueueProvider] Cleared queue: test-queue
|
|
66
|
+
|
|
67
|
+
[90mstdout[2m | src/__test__/queue/InMemoryQueueProvider.test.ts[2m > [22m[2mInMemoryQueueProvider[2m > [22m[2mqueue management[2m > [22m[2mshould return queue names after creating queues
|
|
68
|
+
[22m[39m[2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
|
|
69
|
+
[2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
|
|
70
|
+
|
|
71
|
+
[90mstdout[2m | src/__test__/queue/InMemoryQueueProvider.test.ts[2m > [22m[2mInMemoryQueueProvider[2m > [22m[2mqueue management[2m > [22m[2mshould return correct queue count
|
|
72
|
+
[22m[39m[2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
|
|
73
|
+
[2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
|
|
74
|
+
|
|
75
|
+
[90mstdout[2m | src/__test__/queue/InMemoryQueueProvider.test.ts[2m > [22m[2mInMemoryQueueProvider[2m > [22m[2mqueue management[2m > [22m[2mshould return true for existing queue
|
|
76
|
+
[22m[39m[2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
|
|
77
|
+
|
|
78
|
+
[90mstdout[2m | src/__test__/queue/InMemoryQueueProvider.test.ts[2m > [22m[2mInMemoryQueueProvider[2m > [22m[2mgetGlobalStats[2m > [22m[2mshould return global stats for all queues
|
|
79
|
+
[22m[39m[2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
|
|
80
|
+
[2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
|
|
81
|
+
[2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
|
|
82
|
+
|
|
83
|
+
[90mstdout[2m | src/__test__/queue/InMemoryQueueProvider.test.ts[2m > [22m[2mInMemoryQueueProvider[2m > [22m[2mgetGlobalStats[2m > [22m[2mshould include failed tasks in global stats
|
|
84
|
+
[22m[39m[2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
|
|
85
|
+
[2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
|
|
86
|
+
|
|
87
|
+
[90mstdout[2m | src/__test__/queue/InMemoryQueueProvider.test.ts[2m > [22m[2mInMemoryQueueProvider[2m > [22m[2mtask handlers[2m > [22m[2mshould execute registered handler
|
|
88
|
+
[22m[39m[2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
|
|
89
|
+
|
|
90
|
+
[90mstdout[2m | src/__test__/queue/InMemoryQueueProvider.test.ts[2m > [22m[2mInMemoryQueueProvider[2m > [22m[2mdebug mode[2m > [22m[2mshould work with debug enabled
|
|
91
|
+
[22m[39m[InMemoryQueueProvider] Initialized with config: { globalLimit: [33m30[39m, queueLimit: [33m1[39m, concurrency: [33m1[39m, debug: [33mtrue[39m }
|
|
92
|
+
[InMemoryQueueProvider] Created queue: debug-queue
|
|
93
|
+
[InMemoryQueueProvider] Task enqueued to debug-queue, priority: 5
|
|
94
|
+
|
|
95
|
+
[90mstdout[2m | src/__test__/queue/InMemoryQueueProvider.test.ts[2m > [22m[2mInMemoryQueueProvider[2m > [22m[2mdebug mode[2m > [22m[2mshould work with debug enabled
|
|
96
|
+
[22m[39m[InMemoryQueueProvider] Task completed in debug-queue
|
|
97
|
+
|
|
98
|
+
[90mstdout[2m | src/__test__/queue/InMemoryQueueProvider.test.ts[2m > [22m[2mInMemoryQueueProvider[2m > [22m[2mdebug mode[2m > [22m[2mshould work with debug enabled
|
|
99
|
+
[22m[39m[InMemoryQueueProvider] Closing all queues
|
|
100
|
+
[2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
|
|
101
|
+
[InMemoryQueueProvider] Cleared queue: debug-queue
|
|
102
|
+
|
|
103
|
+
[90mstdout[2m | src/__test__/queue/InMemoryQueueProvider.test.ts[2m > [22m[2mInMemoryQueueProvider[2m > [22m[2mdebug mode[2m > [22m[2mshould handle task failure in debug mode
|
|
104
|
+
[22m[39m[InMemoryQueueProvider] Initialized with config: { globalLimit: [33m30[39m, queueLimit: [33m1[39m, concurrency: [33m1[39m, debug: [33mtrue[39m }
|
|
105
|
+
[InMemoryQueueProvider] Created queue: debug-queue
|
|
106
|
+
[InMemoryQueueProvider] Task enqueued to debug-queue, priority: 5
|
|
107
|
+
|
|
108
|
+
[90mstdout[2m | src/__test__/queue/InMemoryQueueProvider.test.ts[2m > [22m[2mInMemoryQueueProvider[2m > [22m[2mdebug mode[2m > [22m[2mshould handle task failure in debug mode
|
|
109
|
+
[22m[39m[InMemoryQueueProvider] Closing all queues
|
|
110
|
+
[2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
|
|
111
|
+
[InMemoryQueueProvider] Cleared queue: debug-queue
|
|
112
|
+
|
|
113
|
+
[90mstdout[2m | src/__test__/queue/InMemoryQueueProvider.test.ts[2m > [22m[2mInMemoryQueueProvider[2m > [22m[2merror handling[2m > [22m[2mshould throw error when processing empty queue
|
|
114
|
+
[22m[39m[2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
|
|
115
|
+
|
|
116
|
+
[90mstdout[2m | src/__test__/queue/InMemoryQueueProvider.test.ts[2m > [22m[2mInMemoryQueueProvider[2m > [22m[2merror handling[2m > [22m[2mshould propagate errors from tasks
|
|
117
|
+
[22m[39m[2025-12-24 06:44:20] INFO (clearedItems=0): [Queue] Queue cleared
|
|
118
|
+
|
|
119
|
+
[32m✓[39m src/__test__/queue/InMemoryQueueProvider.test.ts [2m([22m[2m34 tests[22m[2m)[22m[32m 68[2mms[22m[39m
|
|
120
|
+
[32m✓[39m src/__test__/builders/BotCommandsBuilder.test.ts [2m([22m[2m32 tests[22m[2m)[22m[32m 31[2mms[22m[39m
|
|
121
|
+
[32m✓[39m src/__test__/agents/PollingLoop.test.ts [2m([22m[2m14 tests[22m[2m)[22m[32m 20[2mms[22m[39m
|
|
122
|
+
[32m✓[39m src/__test__/helpers/update-helpers.test.ts [2m([22m[2m45 tests[22m[2m)[22m[32m 15[2mms[22m[39m
|
|
123
|
+
[90mstdout[2m | src/__test__/queue/QueueProviderFactory.test.ts[2m > [22m[2mQueueProviderFactory[2m > [22m[2mcreate[2m > [22m[2mshould create in-memory provider with custom config
|
|
124
|
+
[22m[39m[InMemoryQueueProvider] Initialized with config: { globalLimit: [33m50[39m, queueLimit: [33m2[39m, concurrency: [33m3[39m, debug: [33mtrue[39m }
|
|
125
|
+
|
|
126
|
+
[90mstdout[2m | src/__test__/queue/QueueProviderFactory.test.ts[2m > [22m[2mQueueProviderFactory[2m > [22m[2mcreateFromEnv[2m > [22m[2mshould create in-memory provider from env variables
|
|
127
|
+
[22m[39m[InMemoryQueueProvider] Initialized with config: { globalLimit: [33m50[39m, queueLimit: [33m2[39m, concurrency: [33m3[39m, debug: [33mtrue[39m }
|
|
128
|
+
|
|
129
|
+
[90mstdout[2m | src/__test__/queue/QueueProviderFactory.test.ts[2m > [22m[2mQueueProviderFactory[2m > [22m[2mcreateFromEnv[2m > [22m[2mshould handle QUEUE_DEBUG=true
|
|
130
|
+
[22m[39m[InMemoryQueueProvider] Initialized with config: { globalLimit: [33m30[39m, queueLimit: [33m1[39m, concurrency: [33m1[39m, debug: [33mtrue[39m }
|
|
131
|
+
|
|
132
|
+
[90mstdout[2m | src/__test__/queue/QueueProviderFactory.test.ts[2m > [22m[2mQueueProviderFactory[2m > [22m[2mcreateInMemoryProvider helper[2m > [22m[2mshould create provider with full config override
|
|
133
|
+
[22m[39m[InMemoryQueueProvider] Initialized with config: { globalLimit: [33m50[39m, queueLimit: [33m2[39m, concurrency: [33m3[39m, debug: [33mtrue[39m }
|
|
134
|
+
|
|
135
|
+
[90mstdout[2m | src/__test__/queue/QueueProviderFactory.test.ts[2m > [22m[2mQueueProviderFactory[2m > [22m[2mcreateInMemoryProvider helper[2m > [22m[2mshould merge config with defaults
|
|
136
|
+
[22m[39m[InMemoryQueueProvider] Initialized with config: { globalLimit: [33m30[39m, queueLimit: [33m1[39m, concurrency: [33m1[39m, debug: [33mtrue[39m }
|
|
137
|
+
|
|
138
|
+
[90mstdout[2m | src/__test__/queue/QueueProviderFactory.test.ts[2m > [22m[2mQueueProviderFactory[2m > [22m[2mintegration[2m > [22m[2mshould create functional provider
|
|
139
|
+
[22m[39m[2025-12-24 06:44:21] INFO (clearedItems=0): [Queue] Queue cleared
|
|
140
|
+
|
|
141
|
+
[90mstdout[2m | src/__test__/queue/QueueProviderFactory.test.ts[2m > [22m[2mQueueProviderFactory[2m > [22m[2mintegration[2m > [22m[2mshould create provider from factory
|
|
142
|
+
[22m[39m[2025-12-24 06:44:21] INFO (clearedItems=0): [Queue] Queue cleared
|
|
143
|
+
|
|
144
|
+
[90mstdout[2m | src/__test__/queue/QueueProviderFactory.test.ts[2m > [22m[2mQueueProviderFactory[2m > [22m[2mintegration[2m > [22m[2mshould create multiple providers independently
|
|
145
|
+
[22m[39m[InMemoryQueueProvider] Initialized with config: { globalLimit: [33m30[39m, queueLimit: [33m1[39m, concurrency: [33m1[39m, debug: [33mtrue[39m }
|
|
146
|
+
|
|
147
|
+
[90mstdout[2m | src/__test__/queue/QueueProviderFactory.test.ts[2m > [22m[2mQueueProviderFactory[2m > [22m[2mintegration[2m > [22m[2mshould create multiple providers independently
|
|
148
|
+
[22m[39m[InMemoryQueueProvider] Created queue: queue2
|
|
149
|
+
[InMemoryQueueProvider] Task enqueued to queue2, priority: 5
|
|
150
|
+
|
|
151
|
+
[90mstdout[2m | src/__test__/queue/QueueProviderFactory.test.ts[2m > [22m[2mQueueProviderFactory[2m > [22m[2mintegration[2m > [22m[2mshould create multiple providers independently
|
|
152
|
+
[22m[39m[InMemoryQueueProvider] Task completed in queue2
|
|
153
|
+
|
|
154
|
+
[32m✓[39m src/__test__/base-telegram-api.test.ts [2m([22m[2m11 tests[22m[2m)[22m[33m 818[2mms[22m[39m
|
|
155
|
+
[33m[2m✓[22m[39m should return expected response [33m 751[2mms[22m[39m
|
|
156
|
+
[90mstdout[2m | src/__test__/queue/QueueProviderFactory.test.ts[2m > [22m[2mQueueProviderFactory[2m > [22m[2mintegration[2m > [22m[2mshould create multiple providers independently
|
|
157
|
+
[22m[39m[2025-12-24 06:44:21] INFO (clearedItems=0): [Queue] Queue cleared
|
|
158
|
+
|
|
159
|
+
[90mstdout[2m | src/__test__/queue/QueueProviderFactory.test.ts[2m > [22m[2mQueueProviderFactory[2m > [22m[2mintegration[2m > [22m[2mshould create multiple providers independently
|
|
160
|
+
[22m[39m[InMemoryQueueProvider] Closing all queues
|
|
161
|
+
[2025-12-24 06:44:21] INFO (clearedItems=0): [Queue] Queue cleared
|
|
162
|
+
[InMemoryQueueProvider] Cleared queue: queue2
|
|
163
|
+
|
|
164
|
+
[32m✓[39m src/__test__/queue/QueueProviderFactory.test.ts [2m([22m[2m28 tests[22m[2m)[22m[32m 29[2mms[22m[39m
|
|
165
|
+
[32m✓[39m src/__test__/transport/TokensManager.test.ts [2m([22m[2m29 tests[22m[2m)[22m[32m 14[2mms[22m[39m
|
|
166
|
+
[32m✓[39m src/__test__/helpers/utils.test.js [2m([22m[2m45 tests[22m[2m)[22m[32m 18[2mms[22m[39m
|
|
167
|
+
[90mstdout[2m | src/__test__/client/TelegramBotClient.performance.test.ts[2m > [22m[2mFilter Cache Performance[2m > [22m[2mshould be faster with cache than without cache
|
|
168
|
+
[22m[39m=== Filter Cache Performance Test ===
|
|
169
|
+
Iterations: 1000
|
|
170
|
+
Filters: 30
|
|
171
|
+
Total deserializations: 30000
|
|
172
|
+
Time without cache: 74.64ms
|
|
173
|
+
Time with cache: 13.78ms
|
|
174
|
+
Speedup: 5.42x
|
|
175
|
+
Improvement: 441.7%
|
|
176
|
+
|
|
177
|
+
[90mstdout[2m | src/__test__/client/TelegramBotClient.performance.test.ts[2m > [22m[2mFilter Cache Performance[2m > [22m[2mshould demonstrate cache efficiency with realistic update processing
|
|
178
|
+
[22m[39m=== Realistic Update Processing Performance ===
|
|
179
|
+
Iterations: 100
|
|
180
|
+
Updates per iteration: 3
|
|
181
|
+
Filters: 5
|
|
182
|
+
Total updates processed: 300
|
|
183
|
+
Time without cache: 6.71ms
|
|
184
|
+
Time with cache: 3.47ms
|
|
185
|
+
Speedup: 1.94x
|
|
186
|
+
Improvement: 93.6%
|
|
187
|
+
|
|
188
|
+
[90mstdout[2m | src/__test__/client/TelegramBotClient.performance.test.ts[2m > [22m[2mFilter Cache Performance[2m > [22m[2mshould show cache memory efficiency
|
|
189
|
+
[22m[39m=== Cache Memory Efficiency ===
|
|
190
|
+
Filters cached: 5
|
|
191
|
+
All filters reuse same object references: ✓
|
|
192
|
+
|
|
193
|
+
[90mstdout[2m | src/__test__/client/TelegramBotClient.performance.test.ts[2m > [22m[2mFilter Cache Performance[2m > [22m[2mshould measure RegExp compilation overhead
|
|
194
|
+
[22m[39m=== RegExp Compilation Overhead ===
|
|
195
|
+
Iterations: 10000
|
|
196
|
+
RegExp patterns: 10
|
|
197
|
+
Total operations: 100000
|
|
198
|
+
Time with compilation: 23.60ms
|
|
199
|
+
Time with reuse: 3.80ms
|
|
200
|
+
Speedup: 6.21x
|
|
201
|
+
RegExp compilation overhead: 19.79ms
|
|
202
|
+
|
|
203
|
+
[32m✓[39m src/__test__/client/TelegramBotClient.performance.test.ts [2m([22m[2m4 tests[22m[2m)[22m[32m 144[2mms[22m[39m
|
|
204
|
+
[32m✓[39m src/__test__/client/TelegramBotClient.test.ts [2m([22m[2m57 tests[22m[2m)[22m[32m 42[2mms[22m[39m
|
|
205
|
+
[32m✓[39m src/__test__/helpers/logger-helpers.test.ts [2m([22m[2m22 tests[22m[2m)[22m[32m 13[2mms[22m[39m
|
|
206
|
+
[32m✓[39m src/__test__/builders/ReplyKeyboardBuilder.test.ts [2m([22m[2m36 tests[22m[2m)[22m[32m 15[2mms[22m[39m
|
|
207
|
+
[32m✓[39m src/__test__/integration/end-to-end.test.ts [2m([22m[2m13 tests[22m[2m)[22m[32m 286[2mms[22m[39m
|
|
208
|
+
[32m✓[39m src/__test__/errors/ErrorMapper.test.ts [2m([22m[2m41 tests[22m[2m)[22m[32m 15[2mms[22m[39m
|
|
209
|
+
[32m✓[39m src/__test__/helpers/constants.test.ts [2m([22m[2m14 tests[22m[2m)[22m[32m 15[2mms[22m[39m
|
|
210
|
+
[32m✓[39m src/__test__/helpers/user-helpers.test.ts [2m([22m[2m33 tests[22m[2m)[22m[32m 10[2mms[22m[39m
|
|
211
|
+
[32m✓[39m src/__test__/wrappers/CallbackQueryWrapper.test.ts [2m([22m[2m52 tests[22m[2m)[22m[33m 461[2mms[22m[39m
|
|
212
|
+
[32m✓[39m src/__test__/agents/WorkerCommandHandler.test.ts [2m([22m[2m6 tests[22m[2m)[22m[32m 9[2mms[22m[39m
|
|
213
|
+
[32m✓[39m src/__test__/wrappers/MessageWrapper.test.ts [2m([22m[2m41 tests[22m[2m)[22m[33m 487[2mms[22m[39m
|
|
214
|
+
[32m✓[39m src/__test__/api-version.test.ts [2m([22m[2m5 tests[22m[2m)[22m[32m 4[2mms[22m[39m
|
|
215
|
+
[32m✓[39m src/__test__/helpers/file-helpers.test.ts [2m([22m[2m17 tests[22m[2m)[22m[32m 15[2mms[22m[39m
|
|
216
|
+
[32m✓[39m src/__test__/client/public-api.test.ts [2m([22m[2m12 tests[22m[2m)[22m[32m 7[2mms[22m[39m
|
|
217
|
+
[32m✓[39m src/__test__/agents/WorkerClientFactory.test.ts [2m([22m[2m5 tests[22m[2m)[22m[32m 5[2mms[22m[39m
|
|
218
|
+
[32m✓[39m src/__test__/transport/TelegramHttpClient.test.ts [2m([22m[2m25 tests[22m[2m)[22m[33m 3927[2mms[22m[39m
|
|
219
|
+
[33m[2m✓[22m[39m should handle rate limiting (429) with retry [33m 1010[2mms[22m[39m
|
|
220
|
+
[33m[2m✓[22m[39m should throw TelegramRateLimitError after max retries [33m 2020[2mms[22m[39m
|
|
221
|
+
[33m[2m✓[22m[39m should throw TelegramNetworkError after max retries [33m 324[2mms[22m[39m
|
|
222
|
+
[33m[2m✓[22m[39m should handle exponential backoff on retries [33m 311[2mms[22m[39m
|
|
223
|
+
[32m✓[39m src/__test__/agents/PollingLoop.integration.test.ts [2m([22m[2m3 tests[22m[2m)[22m[33m 5364[2mms[22m[39m
|
|
224
|
+
[33m[2m✓[22m[39m should start polling loop, process updates, and stop in worker thread [33m 2400[2mms[22m[39m
|
|
225
|
+
[33m[2m✓[22m[39m should handle pause and resume commands [33m 1749[2mms[22m[39m
|
|
226
|
+
[33m[2m✓[22m[39m should stop polling [33m 1214[2mms[22m[39m
|
|
227
|
+
[32m✓[39m src/__test__/transport/TelegramTransport.test.ts [2m([22m[2m27 tests[22m[2m)[22m[33m 7042[2mms[22m[39m
|
|
228
|
+
[33m[2m✓[22m[39m should execute request in direct HTTP mode [33m 1540[2mms[22m[39m
|
|
229
|
+
[33m[2m✓[22m[39m should enqueue request in queue mode [33m 1395[2mms[22m[39m
|
|
230
|
+
[33m[2m✓[22m[39m should use routeId as queue name [33m 454[2mms[22m[39m
|
|
231
|
+
[33m[2m✓[22m[39m should set priority for high-priority methods [33m 453[2mms[22m[39m
|
|
232
|
+
[33m[2m✓[22m[39m should set priority for low-priority methods [33m 454[2mms[22m[39m
|
|
233
|
+
[33m[2m✓[22m[39m should set medium priority for other methods [33m 448[2mms[22m[39m
|
|
234
|
+
[33m[2m✓[22m[39m should use custom priorities when configured [33m 455[2mms[22m[39m
|
|
235
|
+
[33m[2m✓[22m[39m should map application/json content type [33m 452[2mms[22m[39m
|
|
236
|
+
[33m[2m✓[22m[39m should map application/x-www-form-urlencoded content type [33m 456[2mms[22m[39m
|
|
237
|
+
[33m[2m✓[22m[39m should map multipart/form-data content type [33m 458[2mms[22m[39m
|
|
238
|
+
[33m[2m✓[22m[39m should default to json for unknown content type [33m 458[2mms[22m[39m
|
|
239
|
+
[32m✓[39m src/__test__/agents/LongPollingManager.integration.test.ts [2m([22m[2m11 tests[22m[2m)[22m[33m 36887[2mms[22m[39m
|
|
240
|
+
[33m[2m✓[22m[39m should initialize with multiple tokens [33m 527[2mms[22m[39m
|
|
241
|
+
[33m[2m✓[22m[39m should start and stop manager [33m 6553[2mms[22m[39m
|
|
242
|
+
[33m[2m✓[22m[39m should handle onUpdate and onError callbacks [33m 7538[2mms[22m[39m
|
|
243
|
+
[33m[2m✓[22m[39m should track offset updates [33m 510[2mms[22m[39m
|
|
244
|
+
[33m[2m✓[22m[39m should emit events during lifecycle [33m 6528[2mms[22m[39m
|
|
245
|
+
[33m[2m✓[22m[39m should provide worker statistics [33m 6542[2mms[22m[39m
|
|
246
|
+
[33m[2m✓[22m[39m should get worker state [33m 513[2mms[22m[39m
|
|
247
|
+
[33m[2m✓[22m[39m should check worker running status [33m 6535[2mms[22m[39m
|
|
248
|
+
[33m[2m✓[22m[39m should handle multiple tokens with different configurations [33m 513[2mms[22m[39m
|
|
249
|
+
[33m[2m✓[22m[39m should not start if already running [33m 609[2mms[22m[39m
|
|
250
|
+
[33m[2m✓[22m[39m should not stop if not running [33m 513[2mms[22m[39m
|
|
251
|
+
|
|
252
|
+
[2m Test Files [22m [1m[32m32 passed[39m[22m[90m (32)[39m
|
|
253
|
+
[2m Tests [22m [1m[32m876 passed[39m[22m[90m (876)[39m
|
|
254
|
+
[2m Start at [22m 09:44:18
|
|
255
|
+
[2m Duration [22m 37.62s[2m (transform 5.23s, setup 0ms, import 19.56s, tests 55.98s, environment 13ms)[22m
|
|
256
|
+
|