snyk-sbt-plugin
Advanced tools
Comparing version 1.0.2 to 1.1.0
var tabdown = require('./tabdown'); | ||
function converStrToTree(dependenciesTextTree) { | ||
function convertStrToTree(dependenciesTextTree) { | ||
var lines = dependenciesTextTree.toString().split('\n') || []; | ||
var newLines = dependenciesTextTree.toString().split('\n') | ||
var newLines = lines | ||
.map(function (line) { | ||
@@ -105,9 +105,25 @@ return line.replace(/\u001b\[0m/g, ''); | ||
function parse(text, name, version) { | ||
var tree = converStrToTree(text); | ||
var snykTree = { | ||
name: name, | ||
version: version, | ||
dependencies: [], | ||
}; | ||
walkInTree(snykTree, tree); | ||
var rootTree = convertStrToTree(text); | ||
var snykTree; | ||
var appTree; | ||
if (rootTree.root.length === 1) { | ||
// single build configuration | ||
// - use parsed package name and version | ||
// - use single project as root | ||
appTree = rootTree.root[0]; | ||
snykTree = getPackageNameAndVersion(getKeys(appTree).pop()); | ||
snykTree.dependencies = []; | ||
} else { | ||
// multi build configuration | ||
// - use provided package name and version | ||
// - use complete tree as root | ||
appTree = rootTree; | ||
snykTree = { | ||
multiBuild: true, // multi build == fake broken diamond! == beware | ||
name: name, | ||
version: version, | ||
dependencies: [], | ||
}; | ||
} | ||
walkInTree(snykTree, appTree); | ||
snykTree.dependencies = convertDepArrayToObject(snykTree.dependencies); | ||
@@ -121,1 +137,9 @@ return snykTree; | ||
}; | ||
function getKeys(obj) { | ||
var keys = []; | ||
for (var key in obj) { | ||
if (obj.hasOwnProperty(key)) { keys.push(key); } | ||
} | ||
return keys; | ||
} |
@@ -20,10 +20,9 @@ { | ||
"devDependencies": { | ||
"fs": "0.0.1-security", | ||
"jscs": "^3.0.7", | ||
"semantic-release": "^6.3.6", | ||
"sinon": "^2.3.2", | ||
"tap": "^10.3.2", | ||
"sinon": "^2.4.1", | ||
"tap": "^10.7.0", | ||
"tap-only": "0.0.5" | ||
}, | ||
"version": "1.0.2" | ||
"version": "1.1.0" | ||
} |
@@ -6,4 +6,4 @@ var fs = require('fs'); | ||
test('parse a `sbt dependencies` output', function (t) { | ||
t.plan(4); | ||
test('parse `sbt dependencies` output: multi configuration', function (t) { | ||
t.plan(7); | ||
var sbtOutput = fs.readFileSync(path.join( | ||
@@ -13,2 +13,8 @@ __dirname, '..', 'fixtures', 'sbt-dependency-output.txt'), 'utf8'); | ||
t.equal(depTree.name, | ||
'testApp', | ||
'package name'); | ||
t.equal(depTree.version, '1.0.1', 'package version'); | ||
t.true(depTree.multiBuild, 'multi build flag set'); | ||
t.equal(depTree | ||
@@ -51,3 +57,62 @@ .dependencies['myproject-common:myproject-common_2.11'] | ||
test('parse `sbt dependencies` output: single configuration', function (t) { | ||
t.plan(9); | ||
var sbtOutput = fs.readFileSync(path.join( | ||
__dirname, '..', 'fixtures', 'sbt-single-config-dependency-output.txt'), | ||
'utf8'); | ||
var depTree = parser.parse(sbtOutput, 'unused', 'unused'); | ||
t.equal(depTree.name, | ||
'my-recommendation-spark-engine:my-recommendation-spark-engine_2.10', | ||
'package name'); | ||
t.equal(depTree.version, '1.0-SNAPSHOT', 'package version'); | ||
t.equal(depTree.multiBuild, undefined, 'no multi build flag set'); | ||
t.equal(depTree | ||
.dependencies['com.google.code.gson:gson'] | ||
.version, | ||
'2.6.2', 'top level dependency'); | ||
t.equal(depTree | ||
.dependencies['com.stratio.datasource:spark-mongodb_2.10'] | ||
.version, | ||
'0.11.1', 'top level dependency'); | ||
t.equal(depTree | ||
.dependencies['com.stratio.datasource:spark-mongodb_2.10'] | ||
.dependencies['org.mongodb:casbah-commons_2.10'].version, | ||
'2.8.0', 'transient dependency'); | ||
t.equal(depTree | ||
.dependencies['com.stratio.datasource:spark-mongodb_2.10'] | ||
.dependencies['org.mongodb:casbah-commons_2.10'] | ||
.dependencies['com.github.nscala-time:nscala-time_2.10'].version, | ||
'1.0.0', 'transient dependency'); | ||
t.equal(depTree | ||
.dependencies['com.stratio.datasource:spark-mongodb_2.10'] | ||
.dependencies['org.mongodb:casbah-commons_2.10'] | ||
.dependencies['com.github.nscala-time:nscala-time_2.10'] | ||
.dependencies['joda-time:joda-time'].version, | ||
'2.5', 'transient dependency'); | ||
t.same(depTree | ||
.dependencies['com.stratio.datasource:spark-mongodb_2.10'] | ||
.dependencies['org.mongodb:casbah-commons_2.10'] | ||
.dependencies['com.github.nscala-time:nscala-time_2.10'] | ||
.dependencies['joda-time:joda-time'] | ||
.from, | ||
[ | ||
'my-recommendation-spark-engine:my-recommendation-spark-engine_2.10@' + | ||
'1.0-SNAPSHOT', | ||
'com.stratio.datasource:spark-mongodb_2.10@0.11.1', | ||
'org.mongodb:casbah-commons_2.10@2.8.0', | ||
'com.github.nscala-time:nscala-time_2.10@1.0.0', | ||
'joda-time:joda-time@2.5', | ||
], | ||
'`from` array is good'); | ||
}); | ||
test('parse an error output', function (t) { | ||
@@ -54,0 +119,0 @@ t.plan(1); |
@@ -13,3 +13,2 @@ var fs = require('fs'); | ||
t.equal(result.package | ||
.dependencies['com.example:hello_2.12'] | ||
.dependencies['axis:axis'] | ||
@@ -28,2 +27,5 @@ .dependencies['axis:axis-jaxrpc'] | ||
'build.sbt') | ||
.then(function () { | ||
t.fail('should not be reached'); | ||
}) | ||
.catch(function (result) { | ||
@@ -30,0 +32,0 @@ t.pass('Error thrown correctly'); |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
3678677
5
26
403