Skip to content

Commit

Permalink
Fix inaccurate peer dependency warning on upgrade (#2704) (#2733)
Browse files Browse the repository at this point in the history
  • Loading branch information
mjswensen authored and bestander committed Feb 23, 2017
1 parent 5b968dd commit 4e4075f
Show file tree
Hide file tree
Showing 6 changed files with 184 additions and 0 deletions.
32 changes: 32 additions & 0 deletions __tests__/commands/upgrade.js
Original file line number Diff line number Diff line change
Expand Up @@ -103,3 +103,35 @@ test.concurrent('upgrades from fixed version to latest', (): Promise<void> => {
assert.deepEqual(pkg.dependencies, {'max-safe-integer': '^1.0.1'});
});
});

test.concurrent('warns when peer dependency is not met after upgrade', (): Promise<void> => {
return buildRun(
reporters.BufferReporter,
fixturesLoc,
async (args, flags, config, reporter): Promise<void> => {
await upgrade(config, reporter, flags, args);
const output = reporter.getBuffer();
const warnings = output.filter((entry) => entry.type === 'warning');
assert(warnings.some((warning) => warning.data.toString().toLowerCase().includes('incorrect peer')));
},
['themer'],
{},
'peer-dependency-warn',
);
});

test.concurrent('doesn\'t warn when peer dependency is still met after upgrade', (): Promise<void> => {
return buildRun(
reporters.BufferReporter,
fixturesLoc,
async (args, flags, config, reporter): Promise<void> => {
await upgrade(config, reporter, flags, args);
const output = reporter.getBuffer();
const warnings = output.filter((entry) => entry.type === 'warning');
assert(!warnings.some((warning) => warning.data.toString().toLowerCase().includes('peer')));
},
['themer'],
{},
'peer-dependency-no-warn',
);
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"private": "true",
"dependencies": {
"themer": "2.0.0",
"themer-hyper": "^1.0.3"
}
}
69 changes: 69 additions & 0 deletions __tests__/fixtures/upgrade/peer-dependency-no-warn/yarn.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1


clone@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149"

color-convert@^1.3.0:
version "1.9.0"
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a"
dependencies:
color-name "^1.1.1"

color-name@^1.0.0, color-name@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.1.tgz#4b1415304cf50028ea81643643bd82ea05803689"

color-string@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991"
dependencies:
color-name "^1.0.0"

color@^0.11.4:
version "0.11.4"
resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764"
dependencies:
clone "^1.0.2"
color-convert "^1.3.0"
color-string "^0.3.0"

minimist@0.0.8:
version "0.0.8"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"

minimist@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"

mkdirp-promise@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz#e9b8f68e552c68a9c1713b84883f7a1dd039b8a1"
dependencies:
mkdirp "*"

mkdirp@*:
version "0.5.1"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
dependencies:
minimist "0.0.8"

pn@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/pn/-/pn-1.0.0.tgz#1cf5a30b0d806cd18f88fc41a6b5d4ad615b3ba9"

themer-hyper@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/themer-hyper/-/themer-hyper-1.0.3.tgz#395c789a8ce0770cbbe41c59f00da03b19d85dc3"
dependencies:
color "^0.11.4"

themer@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/themer/-/themer-2.0.0.tgz#47ebac19913f7cabda14dcea7efb1b7907d3c6ae"
dependencies:
minimist "^1.2.0"
mkdirp-promise "^5.0.1"
pn "^1.0.0"
7 changes: 7 additions & 0 deletions __tests__/fixtures/upgrade/peer-dependency-warn/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"private": true,
"dependencies": {
"themer": "1.0.2",
"themer-hyper": "1.0.1"
}
}
63 changes: 63 additions & 0 deletions __tests__/fixtures/upgrade/peer-dependency-warn/yarn.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1


clone@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149"

color-convert@^1.3.0:
version "1.9.0"
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a"
dependencies:
color-name "^1.1.1"

color-name@^1.0.0, color-name@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.1.tgz#4b1415304cf50028ea81643643bd82ea05803689"

color-string@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991"
dependencies:
color-name "^1.0.0"

color@^0.11.4:
version "0.11.4"
resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764"
dependencies:
clone "^1.0.2"
color-convert "^1.3.0"
color-string "^0.3.0"

minimist@0.0.8:
version "0.0.8"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"

minimist@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"

mkdirp@^0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
dependencies:
minimist "0.0.8"

pn@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/pn/-/pn-1.0.0.tgz#1cf5a30b0d806cd18f88fc41a6b5d4ad615b3ba9"

themer-hyper@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/themer-hyper/-/themer-hyper-1.0.1.tgz#7766d9bcfc50c6536d2499afbc2a18f10a172317"
dependencies:
color "^0.11.4"

themer@1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/themer/-/themer-1.0.2.tgz#bbcd2843d998c4a890aaec40b851728acc3aab1b"
dependencies:
minimist "^1.2.0"
mkdirp "^0.5.1"
pn "^1.0.0"
6 changes: 6 additions & 0 deletions src/package-linker.js
Original file line number Diff line number Diff line change
Expand Up @@ -300,6 +300,12 @@ export default class PackageLinker {
} while (request = request.parentRequest);
}

// if the resolver already knows about the peer dependency, add those patterns as well
const packagePatterns = this.resolver.patternsByPackage[name];
if (packagePatterns) {
searchPatterns = searchPatterns.concat(packagePatterns);
}

// include root seed patterns last
searchPatterns = searchPatterns.concat(this.resolver.seedPatterns);

Expand Down

0 comments on commit 4e4075f

Please sign in to comment.