@soos-io/api-client
Advanced tools
Comparing version 0.2.15 to 0.2.16
@@ -1,2 +0,2 @@ | ||
import { ScanStatus, ScanType } from "./enums"; | ||
import { IntegrationName, OnFailure, ScanStatus, ScanType } from "./enums"; | ||
import { IIssuesModel } from "./api/SOOSAnalysisApiClient"; | ||
@@ -13,4 +13,4 @@ declare const isNil: (value: unknown) => value is null | undefined; | ||
declare const formatBytes: (bytes: number, decimals?: number) => string; | ||
declare const getExitCodeFromStatus: (scanStatus: ScanStatus) => number; | ||
declare const getAnalysisExitCode: (scanStatus: ScanStatus, integrationName: IntegrationName, onFailure: OnFailure) => number; | ||
declare const getVulnerabilitiesByScanType: (issues: IIssuesModel | null, scanType: ScanType) => number | undefined; | ||
export { isNil, ensureValue, ensureEnumValue, ensureNonEmptyValue, sleep, isUrlAvailable, obfuscateProperties, convertStringToBase64, getEnvVariable, formatBytes, getExitCodeFromStatus, getVulnerabilitiesByScanType, }; | ||
export { isNil, ensureValue, ensureEnumValue, ensureNonEmptyValue, sleep, isUrlAvailable, obfuscateProperties, convertStringToBase64, getEnvVariable, formatBytes, getAnalysisExitCode, getVulnerabilitiesByScanType, }; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.getVulnerabilitiesByScanType = exports.getExitCodeFromStatus = exports.formatBytes = exports.getEnvVariable = exports.convertStringToBase64 = exports.obfuscateProperties = exports.isUrlAvailable = exports.sleep = exports.ensureNonEmptyValue = exports.ensureEnumValue = exports.ensureValue = exports.isNil = void 0; | ||
exports.getVulnerabilitiesByScanType = exports.getAnalysisExitCode = exports.formatBytes = exports.getEnvVariable = exports.convertStringToBase64 = exports.obfuscateProperties = exports.isUrlAvailable = exports.sleep = exports.ensureNonEmptyValue = exports.ensureEnumValue = exports.ensureValue = exports.isNil = void 0; | ||
const tslib_1 = require("tslib"); | ||
@@ -104,18 +104,22 @@ const axios_1 = tslib_1.__importStar(require("axios")); | ||
exports.formatBytes = formatBytes; | ||
const getExitCodeFromStatus = (scanStatus) => { | ||
const getAnalysisExitCode = (scanStatus, integrationName, onFailure) => { | ||
if (scanStatus === enums_1.ScanStatus.FailedWithIssues) { | ||
SOOSLogger_1.soosLogger.warn("Analysis Complete. Failures reported."); | ||
return 2; | ||
SOOSLogger_1.soosLogger.warn("Analysis Complete. Issues reported."); | ||
return onFailure === enums_1.OnFailure.Fail | ||
? 1 | ||
: integrationName === enums_1.IntegrationName.AzureDevOps | ||
? 2 | ||
: 0; | ||
} | ||
else if (scanStatus === enums_1.ScanStatus.Incomplete) { | ||
SOOSLogger_1.soosLogger.warn("Analysis Incomplete. It may have been cancelled or superseded by another scan."); | ||
return 1; | ||
return onFailure === enums_1.OnFailure.Fail ? 1 : 0; | ||
} | ||
else if (scanStatus === enums_1.ScanStatus.Error) { | ||
SOOSLogger_1.soosLogger.warn("Analysis Error."); | ||
return 1; | ||
return onFailure === enums_1.OnFailure.Fail ? 1 : 0; | ||
} | ||
return 0; | ||
}; | ||
exports.getExitCodeFromStatus = getExitCodeFromStatus; | ||
exports.getAnalysisExitCode = getAnalysisExitCode; | ||
const getVulnerabilitiesByScanType = (issues, scanType) => { | ||
@@ -122,0 +126,0 @@ if (isNil(issues)) |
@@ -61,15 +61,18 @@ "use strict"; | ||
}); | ||
describe("getExitCodeFromStatus", () => { | ||
test("should return 0 for Finished", () => { | ||
expect((0, utilities_1.getExitCodeFromStatus)(enums_1.ScanStatus.Finished)).toBe(0); | ||
describe("getAnalysisExitCode", () => { | ||
test("should exit with code 0", () => { | ||
expect((0, utilities_1.getAnalysisExitCode)(enums_1.ScanStatus.Finished, enums_1.IntegrationName.SoosSca, enums_1.OnFailure.Continue)).toBe(0); | ||
}); | ||
test("should return 1 for an Incomplete status", () => { | ||
expect((0, utilities_1.getExitCodeFromStatus)(enums_1.ScanStatus.Incomplete)).toBe(1); | ||
test("should return 0 for an Incomplete status on continue on failure", () => { | ||
expect((0, utilities_1.getAnalysisExitCode)(enums_1.ScanStatus.Incomplete, enums_1.IntegrationName.SoosSca, enums_1.OnFailure.Continue)).toBe(0); | ||
}); | ||
test("should return 1 for an Error status", () => { | ||
expect((0, utilities_1.getExitCodeFromStatus)(enums_1.ScanStatus.Error)).toBe(1); | ||
test("should return 1 for an Error status on fail", () => { | ||
expect((0, utilities_1.getAnalysisExitCode)(enums_1.ScanStatus.Error, enums_1.IntegrationName.SoosSca, enums_1.OnFailure.Fail)).toBe(1); | ||
}); | ||
test("should return 2 for a FailedWithIssues status", () => { | ||
expect((0, utilities_1.getExitCodeFromStatus)(enums_1.ScanStatus.FailedWithIssues)).toBe(2); | ||
test("should return 2 for a FailedWithIssues status on continue with Azure Devops", () => { | ||
expect((0, utilities_1.getAnalysisExitCode)(enums_1.ScanStatus.FailedWithIssues, enums_1.IntegrationName.AzureDevOps, enums_1.OnFailure.Continue)).toBe(2); | ||
}); | ||
test("should return 0 for a FailedWithIssues status without azure devops", () => { | ||
expect((0, utilities_1.getAnalysisExitCode)(enums_1.ScanStatus.FailedWithIssues, enums_1.IntegrationName.SoosSca, enums_1.OnFailure.Continue)).toBe(0); | ||
}); | ||
}); |
{ | ||
"name": "@soos-io/api-client", | ||
"version": "0.2.15", | ||
"version": "0.2.16", | ||
"description": "This is the SOOS API Client for registered clients leveraging the various integrations to the SOOS platform.", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
76085
1670