Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions workspaces/scanner/src/comparePayloads.ts
Original file line number Diff line number Diff line change
Expand Up @@ -99,8 +99,11 @@ export function comparePayloads(
);
}

const givenVersion = Object.keys(payload.dependencies[payload.rootDependencyName].versions)[0];
const comparedVersion = Object.keys(comparedPayload.dependencies[comparedPayload.rootDependencyName].versions)[0];

return {
title: `'${payload.rootDependencyName}' -> '${comparedPayload.rootDependencyName}'`,
title: `'${payload.rootDependencyName}@${givenVersion}' -> '${comparedPayload.rootDependencyName}@${comparedVersion}'`,
warnings: arrayDiff(
payload.warnings,
comparedPayload.warnings
Expand Down Expand Up @@ -159,9 +162,10 @@ function compareVersions(
isDevDependency: compareValues(version.isDevDependency, comparedVersion.isDevDependency),
existOnRemoteRegistry: compareValues(version.existOnRemoteRegistry, comparedVersion.existOnRemoteRegistry),
description: compareValues(version.description, comparedVersion.description),
author: compareObjects("name", version.author!, comparedVersion.author!),
author: version.author && comparedVersion.author ? compareObjects("name", version.author, comparedVersion.author) : void 0,
// @ts-ignore
engines: compareDictionnaries(version.engines, comparedVersion.engines),
// FIXME: repository can be a string: https://github.com/pillarjs/encodeurl/blob/master/package.json#L14
repository: compareObjects("type", version.repository, comparedVersion.repository)
?? compareObjects("url", version.repository, comparedVersion.repository),
scripts: compareDictionnaries(version.scripts, comparedVersion.scripts),
Expand Down
9 changes: 8 additions & 1 deletion workspaces/scanner/test/comparePayloads.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ it("should throw an error if compared payloads have the same id", () => {
it("should throw an error if compared payloads are not from the same package", () => {
assert.throws(
() => compareTo("otherRootDependency"),
{ message: "You can't compare different package payloads 'is-wsl' and 'is-not-wsl'" }
{ message: "You can't compare different package payloads 'foo' and 'bar'" }
);
});

Expand Down Expand Up @@ -276,6 +276,13 @@ it("should detect scripts diff", () => {
assert.strictEqual(scripts.compared.get("standard")?.now, "npx standard --fix");
});

it("should not throw when author is null", () => {
const { dependencies: { compared } } = compareTo("nullAuthor");
const { author } = compared.get("foo")!.versions.compared.get("2.0.0")!;

assert.strictEqual(author, void 0);
});

const payloads = {} as Record<string, any>;
function compareTo(name: string) {
if (!payloads[name]) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"id": "hjnfnJ",
"rootDependencyName": "is-wsl",
"rootDependencyName": "foo",
"warnings": [],
"dependencies": {
"foo": {
Expand Down
Loading
Loading