UNPKG

auditjs

Version:

Audit dependencies to identify known vulnerabilities and maintenance problems

84 lines 5.64 kB
"use strict"; /* * Copyright 2019-Present Sonatype Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const CycloneDXSbomCreator_1 = require("./CycloneDXSbomCreator"); const TestHelper_1 = __importDefault(require("../Tests/TestHelper")); // Test object with circular dependency, scoped dependency, dependency with dependency const object = { name: 'testproject', version: '1.0.0', description: 'Test Description', dependencies: { testdependency: { name: 'testdependency', version: '1.0.1', bugs: { url: 'git+ssh://git@github.com/slackhq/csp-html-webpack-plugin.git', }, dependencies: { testdependency: { name: 'testdependency', version: '1.0.1', }, }, }, testdependency2: { name: 'testdependency2', version: '1.0.2', repository: { url: 'git@slack-github.com:anuj/csp-html-webpack-plugin.git', }, dependencies: { testdependency: { name: 'testdependency', version: '1.0.0', }, }, }, '@scope/testdependency3': { name: '@scope/testdependency3', version: '1.0.2', }, }, }; const expectedResponse = `<?xml version="1.0" encoding="utf-8"?><bom xmlns="http://cyclonedx.org/schema/bom/1.1" version="1"><components><component type="library" bom-ref="pkg:npm/testdependency@1.0.1"><name>testdependency</name><version>1.0.1</version><purl>pkg:npm/testdependency@1.0.1</purl><description/><externalReferences><reference type="issue-tracker"><url>git+ssh://git@github.com/slackhq/csp-html-webpack-plugin.git</url></reference></externalReferences></component><component type="library" bom-ref="pkg:npm/testdependency2@1.0.2"><name>testdependency2</name><version>1.0.2</version><purl>pkg:npm/testdependency2@1.0.2</purl><description/></component><component type="library" bom-ref="pkg:npm/testdependency@1.0.0"><name>testdependency</name><version>1.0.0</version><purl>pkg:npm/testdependency@1.0.0</purl><description/></component><component type="library" bom-ref="pkg:npm/%40scope/testdependency3@1.0.2"><group>@scope</group><name>testdependency3</name><version>1.0.2</version><purl>pkg:npm/%40scope/testdependency3@1.0.2</purl><description/></component></components></bom>`; const expectedSpartanResponse = `<?xml version="1.0" encoding="utf-8"?><bom xmlns="http://cyclonedx.org/schema/bom/1.1" version="1"><components><component type="library" bom-ref="pkg:npm/testdependency@1.0.1"><name>testdependency</name><version>1.0.1</version><purl>pkg:npm/testdependency@1.0.1</purl></component><component type="library" bom-ref="pkg:npm/testdependency2@1.0.2"><name>testdependency2</name><version>1.0.2</version><purl>pkg:npm/testdependency2@1.0.2</purl></component><component type="library" bom-ref="pkg:npm/testdependency@1.0.0"><name>testdependency</name><version>1.0.0</version><purl>pkg:npm/testdependency@1.0.0</purl></component><component type="library" bom-ref="pkg:npm/%40scope/testdependency3@1.0.2"><group>@scope</group><name>testdependency3</name><version>1.0.2</version><purl>pkg:npm/%40scope/testdependency3@1.0.2</purl></component></components></bom>`; describe('CycloneDXSbomCreator', () => __awaiter(void 0, void 0, void 0, function* () { it('should create an sbom string given a minimal valid object', () => __awaiter(void 0, void 0, void 0, function* () { const sbomCreator = new CycloneDXSbomCreator_1.CycloneDXSbomCreator(process.cwd()); const string = yield sbomCreator.createBom(object); (0, TestHelper_1.default)(string).to.eq(expectedResponse); })); it('should create a spartan sbom string given a minimal valid object', () => __awaiter(void 0, void 0, void 0, function* () { const sbomCreator = new CycloneDXSbomCreator_1.CycloneDXSbomCreator(process.cwd(), { spartan: true }); const string = yield sbomCreator.createBom(object); (0, TestHelper_1.default)(string).to.eq(expectedSpartanResponse); })); })); //# sourceMappingURL=CycloneDXSbomCreator.spec.js.map