UNPKG

@buddy-works/unit-tests

Version:

Universal test results collector for Jest, Jasmine, Mocha, Cypress, Playwright, and Vitest that sends results to Buddy Works API in real-time

56 lines (55 loc) 2.66 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const session_manager_1 = __importDefault(require("../../core/session-manager")); const reporter_1 = __importDefault(require("../../reporters/mocha/reporter")); const logger_1 = __importDefault(require("../../utils/logger")); class BuddyCypressReporter extends reporter_1.default { static async closeSession() { await session_manager_1.default.closeSession(); } async onStart() { logger_1.default.debug('Cypress spec file started'); try { const existingSessionId = session_manager_1.default.sessionId || process.env.BUDDY_SESSION_ID; if (existingSessionId) { logger_1.default.debug(`Reusing existing session: ${existingSessionId}`); if (!session_manager_1.default.sessionId) { session_manager_1.default.sessionId = existingSessionId; } } else { logger_1.default.debug('Creating new session for Cypress'); await session_manager_1.default.getOrCreateSession('cypress'); } logger_1.default.debug('Session ready for Cypress spec file'); } catch (error) { logger_1.default.error('Error preparing session for Cypress spec file', error); session_manager_1.default.markFrameworkError(); } } async onEnd() { logger_1.default.debug('Cypress spec file completed'); if (this.pendingSubmissions.size > 0) { logger_1.default.debug(`Waiting for ${String(this.pendingSubmissions.size)} pending test submissions to complete`); const maxWaitTime = 10000; const startTime = Date.now(); while (this.pendingSubmissions.size > 0 && Date.now() - startTime < maxWaitTime) { await new Promise((resolve) => setTimeout(resolve, 100)); } if (this.pendingSubmissions.size > 0) { logger_1.default.warn(`Timed out waiting for ${String(this.pendingSubmissions.size)} test submissions`); session_manager_1.default.markFrameworkError(); } else { logger_1.default.debug('All test submissions completed'); } } logger_1.default.debug('Cypress spec file completed, keeping session open for other spec files'); } } BuddyCypressReporter.displayName = 'BuddyCypressReporter'; exports.default = BuddyCypressReporter;