From 908cfcfb97de4cc68fa77e5e3953df6701be3dab Mon Sep 17 00:00:00 2001 From: Leifer Mendez Date: Thu, 27 Nov 2025 12:15:20 +0100 Subject: [PATCH 1/3] fix: remove unnecessary semicolon in Instagram provider test From 43a2f291997e2ef73793070056b73844be5255b5 Mon Sep 17 00:00:00 2001 From: Leifer Mendez Date: Thu, 27 Nov 2025 12:15:52 +0100 Subject: [PATCH 2/3] chore: add build dependency to --- nx.json | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/nx.json b/nx.json index d914c3df7..9510001b8 100644 --- a/nx.json +++ b/nx.json @@ -19,6 +19,9 @@ "cache": true }, "test": { + "dependsOn": [ + "^build" + ], "inputs": [ "default", "^prod" @@ -31,9 +34,12 @@ ] }, "test:coverage": { + "dependsOn": [ + "^build" + ], "outputs": [ "{projectRoot}/coverage" ] } } -} +} \ No newline at end of file From e82849527a3056a84d04ac2141001b1a2958fc8a Mon Sep 17 00:00:00 2001 From: Leifer Mendez Date: Thu, 27 Nov 2025 12:26:37 +0100 Subject: [PATCH 3/3] fix: remove unnecessary semicolon in Venom provider test and enhance timer management in afterEach --- .../provider-venom/__tests__/provider.test.ts | 38 ++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/packages/provider-venom/__tests__/provider.test.ts b/packages/provider-venom/__tests__/provider.test.ts index eb34ed132..e1e3db072 100644 --- a/packages/provider-venom/__tests__/provider.test.ts +++ b/packages/provider-venom/__tests__/provider.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, jest, test } from '@jest/globals' +import { afterEach, beforeEach, describe, expect, jest, test } from '@jest/globals' import { writeFile } from 'fs/promises' import { utils } from '@builderbot/bot' import path from 'path' @@ -30,7 +30,26 @@ describe('#VenomProvider', () => { let mockNext: any let mockRes: any let mockReq: any + const activeTimers = new Set() + let originalSetTimeout: typeof setTimeout + let originalClearTimeout: typeof clearTimeout + beforeEach(() => { + // Intercept setTimeout to track all timers + originalSetTimeout = global.setTimeout + originalClearTimeout = global.clearTimeout + + global.setTimeout = ((fn: Function, delay?: number, ...args: any[]) => { + const timer = originalSetTimeout(fn, delay, ...args) + activeTimers.add(timer) + return timer + }) as typeof setTimeout + + global.clearTimeout = ((timer: any) => { + activeTimers.delete(timer) + return originalClearTimeout(timer) + }) as typeof clearTimeout + venomProvider = new VenomProvider({ name: 'test', gifPlayback: false }) mockReq = {} mockRes = { @@ -42,6 +61,18 @@ describe('#VenomProvider', () => { mockNext = jest.fn() }) + afterEach(() => { + jest.clearAllMocks() + // Clear all tracked timers + activeTimers.forEach((timer) => { + originalClearTimeout(timer) + }) + activeTimers.clear() + // Restore original functions + global.setTimeout = originalSetTimeout + global.clearTimeout = originalClearTimeout + }) + describe('VenomProvider Constructor', () => { test('Initialization with default arguments', () => { expect(venomProvider.globalVendorArgs).toEqual({ @@ -591,12 +622,17 @@ describe('#VenomProvider', () => { emit: mockEmit, } venomProvider.emit = (mockEventEmitter as any).emit.bind(mockEventEmitter) + ;(venom.create as jest.Mock).mockImplementationOnce(() => { + return Promise.reject(new Error('Initialization failed')) + }) + // Act await venomProvider['initVendor']() // Assert expect(venom.create).toHaveBeenCalled() expect(mockEmit).toHaveBeenCalled() + // The setTimeout created in the error handler will be automatically cleaned up in afterEach }) }) })