From 454af5d50777092fd8f3777ccb91a3132400efbd Mon Sep 17 00:00:00 2001 From: David Greenspan Date: Tue, 10 Mar 2015 01:40:25 -0700 Subject: [PATCH] Change error messages a little --- .../constraint-solver/constraint-solver-tests.js | 2 +- packages/constraint-solver/input-tests.js | 4 ++-- packages/constraint-solver/solver.js | 12 +++++++++--- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/packages/constraint-solver/constraint-solver-tests.js b/packages/constraint-solver/constraint-solver-tests.js index 7fbdbe7212..5ab5c06c81 100644 --- a/packages/constraint-solver/constraint-solver-tests.js +++ b/packages/constraint-solver/constraint-solver-tests.js @@ -185,7 +185,7 @@ Tinytest.add("constraint solver - no results", function (test) { ]); testWithResolver(test, resolver, function (t, FAIL) { FAIL({foo: "w1.0.0", bar: "1.0.0"}, - /No version of foo satisfies top-level constraints: @1.0.0/); + /No version of foo satisfies all constraints: @1.0.0/); }); }); diff --git a/packages/constraint-solver/input-tests.js b/packages/constraint-solver/input-tests.js index aac07b0323..ec6ae85b19 100644 --- a/packages/constraint-solver/input-tests.js +++ b/packages/constraint-solver/input-tests.js @@ -338,7 +338,7 @@ Tinytest.add("constraint solver - input - conflicting top-level constraints", fu "bar 1.0.0": ["foo"] } } - }, /No version of foo satisfies top-level constraints: @1.0.0, @2.0.0/); + }, /No version of foo satisfies all constraints: @1.0.0, @2.0.0/); }); Tinytest.add("constraint solver - input - previous indirect deps", function (test) { @@ -497,7 +497,7 @@ Tinytest.add("constraint solver - input - stack overflow bug", function (test) { // It's not actually a good test of logic-solver overflowing the stack anymore, // because the constraint-solver is smarter now. doFailTest(test, STACK_OVERFLOW_BUG_INPUT, - /No version of follower-livedata satisfies top-level constraints: @0.9.0/); + /No version of follower-livedata satisfies all constraints: @0.9.0/); }); diff --git a/packages/constraint-solver/solver.js b/packages/constraint-solver/solver.js index 827481685e..0b9f05a5ae 100644 --- a/packages/constraint-solver/solver.js +++ b/packages/constraint-solver/solver.js @@ -52,7 +52,9 @@ CS.Solver.prototype.calculateAllowedVersions = function () { }); }); if (! versions.length) { - self.packagesWithNoAllowedVersions[p] = cs; + self.packagesWithNoAllowedVersions[p] = _.filter(cs, function (c) { + return !! c.constraintString; + }); } allowedVersions[p] = versions; }); @@ -504,7 +506,7 @@ CS.Solver.prototype.getSolution = function (options) { logic.forbid(p); } else { self.errors.push( - 'No version of ' + p + ' satisfies top-level constraints: ' + + 'No version of ' + p + ' satisfies all constraints: ' + _.map(constrs, function (constr) { return '@' + constr.constraintString; }).join(', ')); @@ -729,7 +731,11 @@ CS.Solver.prototype.analyzeRootDependencies = function () { CS.Solver.prototype.throwAnyErrors = function () { if (this.errors.length) { - CS.throwConstraintSolverError(this.errors.join('\n\n')); + var multiline = _.any(this.errors, function (e) { + return /\n/.test(e); + }); + CS.throwConstraintSolverError(this.errors.join( + multiline ? '\n\n' : '\n')); } };