UNPKG

n8n

Version:

n8n Workflow Automation Tool

97 lines 4.31 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.TestRunRepository = void 0; const di_1 = require("@n8n/di"); const typeorm_1 = require("@n8n/typeorm"); const test_run_ee_1 = require("../../databases/entities/test-run.ee"); const not_found_error_1 = require("../../errors/response-errors/not-found.error"); const utils_ee_1 = require("../../evaluation.ee/test-runner/utils.ee"); let TestRunRepository = class TestRunRepository extends typeorm_1.Repository { constructor(dataSource) { super(test_run_ee_1.TestRun, dataSource.manager); } async createTestRun(testDefinitionId) { const testRun = this.create({ status: 'new', testDefinition: { id: testDefinitionId }, }); return await this.save(testRun); } async markAsRunning(id, totalCases) { return await this.update(id, { status: 'running', runAt: new Date(), totalCases, passedCases: 0, failedCases: 0, }); } async markAsCompleted(id, metrics) { return await this.update(id, { status: 'completed', completedAt: new Date(), metrics }); } async markAsCancelled(id, trx) { trx = trx ?? this.manager; return await trx.update(test_run_ee_1.TestRun, id, { status: 'cancelled' }); } async markAsError(id, errorCode, errorDetails) { return await this.update(id, { status: 'error', errorCode, errorDetails, }); } async markAllIncompleteAsFailed() { return await this.update({ status: (0, typeorm_1.In)(['new', 'running']) }, { status: 'error', errorCode: 'INTERRUPTED' }); } async incrementPassed(id, trx) { trx = trx ?? this.manager; return await trx.increment(test_run_ee_1.TestRun, { id }, 'passedCases', 1); } async incrementFailed(id, trx) { trx = trx ?? this.manager; return await trx.increment(test_run_ee_1.TestRun, { id }, 'failedCases', 1); } async getMany(testDefinitionId, options) { const findManyOptions = { where: { testDefinition: { id: testDefinitionId } }, order: { createdAt: 'DESC' }, relations: ['testCaseExecutions'], }; if (options?.take) { findManyOptions.skip = options.skip; findManyOptions.take = options.take; } const testRuns = await this.find(findManyOptions); return testRuns.map(({ testCaseExecutions, ...testRun }) => { const finalResult = testRun.status === 'completed' ? (0, utils_ee_1.getTestRunFinalResult)(testCaseExecutions) : null; return { ...testRun, finalResult }; }); } async getTestRunSummaryById(testDefinitionId, testRunId) { const testRun = await this.findOne({ where: { id: testRunId, testDefinition: { id: testDefinitionId } }, relations: ['testCaseExecutions'], }); if (!testRun) { throw new not_found_error_1.NotFoundError('Test run not found'); } testRun.finalResult = testRun.status === 'completed' ? (0, utils_ee_1.getTestRunFinalResult)(testRun.testCaseExecutions) : null; return testRun; } }; exports.TestRunRepository = TestRunRepository; exports.TestRunRepository = TestRunRepository = __decorate([ (0, di_1.Service)(), __metadata("design:paramtypes", [typeorm_1.DataSource]) ], TestRunRepository); //# sourceMappingURL=test-run.repository.ee.js.map