UNPKG

@sectester/reporter

Version:

Provide an abstraction for generating test results as part of the particular test frameworks.

49 lines 2.39 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.GitLabCIArtifactsFileWriter = void 0; const tslib_1 = require("tslib"); const GitLabConfig_1 = require("./GitLabConfig"); const utils_1 = require("../utils"); const tsyringe_1 = require("tsyringe"); const promises_1 = require("node:fs/promises"); const node_crypto_1 = require("node:crypto"); const node_path_1 = require("node:path"); let GitLabCIArtifactsFileWriter = class GitLabCIArtifactsFileWriter { constructor(config) { this.config = config; } async writeCodeQualityReport(report) { // This method writes GitLab Code Quality reports to a file. // To display these reports in GitLab merge requests, you need to configure your .gitlab-ci.yml: // artifacts: // reports: // codequality: gl-code-quality-report.json const reportJson = JSON.stringify(report, null, 2); const filename = this.config.codeQualityReportFilename; await (0, promises_1.writeFile)(filename, reportJson, 'utf-8'); } async writeTestReport(report) { const fileName = this.generateUniqueFileName(); // This method writes GitLab Test reports in JUnit XML format to a file. // To display these reports in GitLab merge requests, you need to configure your .gitlab-ci.yml: // artifacts: // reports: // junit: gl-test-report-*.xml // Note: Filenames are automatically made unique for concurrent test runs const reportXml = (0, utils_1.buildJUnitXML)(report); await (0, promises_1.writeFile)(fileName, reportXml, 'utf-8'); } generateUniqueFileName() { const ext = (0, node_path_1.extname)(this.config.testReportFilename); const baseName = (0, node_path_1.basename)(this.config.testReportFilename, ext); const fileName = `${baseName}-${(0, node_crypto_1.randomUUID)()}.${ext}`; return fileName; } }; exports.GitLabCIArtifactsFileWriter = GitLabCIArtifactsFileWriter; exports.GitLabCIArtifactsFileWriter = GitLabCIArtifactsFileWriter = tslib_1.__decorate([ (0, tsyringe_1.injectable)(), tslib_1.__param(0, (0, tsyringe_1.inject)(GitLabConfig_1.GITLAB_CONFIG)), tslib_1.__metadata("design:paramtypes", [Object]) ], GitLabCIArtifactsFileWriter); //# sourceMappingURL=GitLabCodeQualityFileWriter.js.map