Skip to content

Commit

Permalink
Merge branch 'main' into vaadinFilter
Browse files Browse the repository at this point in the history
  • Loading branch information
mshabarov authored Sep 25, 2023
2 parents c03a778 + cb63006 commit 7c224e2
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 117 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -333,6 +333,12 @@ protected static boolean pinPlatformDependency(JsonObject packageJson,
// would be but probably it should be pinned like any other version
}

if ((vaadinDepsVersion != null && packageJsonVersion != null)
&& !vaadinDepsVersion.equals(packageJsonVersion)) {
// The user has overridden the version, use that
return false;
}

if (platformPinnedVersion.equals(packageJsonVersion)
&& platformPinnedVersion.equals(vaadinDepsVersion)) {
return false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,10 +78,8 @@ JsonObject getFilteredVersions(JsonObject versions, String versionOrigin) {
userManagedDependencies.getString(key), key,
versions.getString(key));
}
json.put(key, userManagedDependencies.getString(key));
} else {
json.put(key, versions.getString(key));
}
json.put(key, versions.getString(key));
}
return json;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -159,114 +159,6 @@ public void generateVersionsJson_userHasNoCustomVersions_platformIsMergedWithDev
object.getString("@vaadin/vaadin-overlay"));
}

@Test
public void generateVersionsJson_userVersionNewerThanPinned_intalledOverlayVersionIsUserVersion()
throws IOException {
File packageJson = new File(npmFolder, PACKAGE_JSON);
packageJson.createNewFile();

// Write package json file
final String customOverlayVersion = "3.3.0";
// @formatter:off
FileUtils.write(packageJson,
"{"
+ "\"vaadin\": {"
+ "\"dependencies\": {"
+ "\"@vaadin/vaadin-dialog\": \"2.3.0\","
+ "\"@vaadin/vaadin-overlay\": \"" + PINNED_VERSION + "\""

+ "},"
+ "\"devDependencies\": {"
+ "\"@vaadin/vaadin-notification\": \"1.3.9\""
+ "},"
+ "},"
+ "\"dependencies\": {"
+ "\"@vaadin/vaadin-dialog\": \"2.3.0\","
+ "\"@vaadin/vaadin-overlay\": \"" + customOverlayVersion + "\""
+ "},"
+ "\"devDependencies\": {"
+ "\"@vaadin/vaadin-notification\": \"1.4.0\""
+ "},"
+ "}",
StandardCharsets.UTF_8);
// @formatter:on

File versions = temporaryFolder.newFile();
// Platform defines a pinned version
// @formatter:off
FileUtils.write(versions, String.format(
"{"
+ "\"vaadin-overlay\": {"
+ "\"npmName\": \"@vaadin/vaadin-overlay\","
+ "\"jsVersion\": \"%s\""
+ "}"
+ "}", PINNED_VERSION), StandardCharsets.UTF_8);
// @formatter:on

JsonObject versionsJson = getGeneratedVersionsContent(versions,
packageJson);
Assert.assertEquals(
"Generated versions json should have keys for each dependency",
2, versionsJson.keys().length);
Assert.assertEquals("Overlay should be pinned to user version",
customOverlayVersion,
versionsJson.getString("@vaadin/vaadin-overlay"));
}

@Test
public void generateVersionsJson_userVersionOlderThanPinned_installedOverlayPinnedVersionIsUserVersion()
throws IOException {
File packageJson = new File(npmFolder, PACKAGE_JSON);
packageJson.createNewFile();

// Write package json file
final String customOverlayVersion = "3.1.0";

// @formatter:off
FileUtils.write(packageJson,
"{"
+ "\"vaadin\": {"
+ "\"dependencies\": {"
+ "\"@vaadin/vaadin-dialog\": \"2.3.0\","
+ "\"@vaadin/vaadin-overlay\": \"" + PINNED_VERSION + "\""
+ "},"
+ "\"devDependencies\": {"
+ "\"@vaadin/vaadin-notification\": \"1.4.0\""
+ "},"
+ "},"
+ "\"dependencies\": {"
+ "\"@vaadin/vaadin-dialog\": \"2.3.0\","
+ "\"@vaadin/vaadin-overlay\": \"" + customOverlayVersion + "\""
+ "},"
+ "\"devDependencies\": {"
+ "\"@vaadin/vaadin-notification\": \"1.3.9\""
+ "},"
+ "}",
StandardCharsets.UTF_8);
// @formatter:on

File versions = temporaryFolder.newFile();
// Platform defines a pinned version
// @formatter:off
FileUtils.write(versions,String.format(
"{"
+ "\"vaadin-overlay\": {"
+ "\"npmName\": \"@vaadin/vaadin-overlay\","
+ "\"jsVersion\": \"%s\""
+ "}"
+ "}", PINNED_VERSION), StandardCharsets.UTF_8);
// @formatter:on

JsonObject versionsJson = getGeneratedVersionsContent(versions,
packageJson);
Assert.assertEquals(
"Generated versions json should have keys for package.json dependencies (also dev)",
2, versionsJson.keys().length);
Assert.assertEquals("Overlay should be pinned to user version",
customOverlayVersion,
versionsJson.getString("@vaadin/vaadin-overlay"));
}

@Test
public void generateVersionsJson_userDefinedVersions_versionOnlyPinnedForNotAddedDependencies()
throws IOException {
Expand Down Expand Up @@ -338,15 +230,9 @@ public void generateVersionsJson_userDefinedVersions_versionOnlyPinnedForNotAdde
Assert.assertEquals("Login version is the same for user and platform.",
loginVersion,
generatedVersions.getString("@vaadin/vaadin-login"));
Assert.assertEquals("Menu Bar should be pinned to user version.",
menuVersion,
generatedVersions.getString("@vaadin/vaadin-menu-bar"));
Assert.assertEquals("Notification version should use platform",
versionsNotificationVersion,
generatedVersions.getString("@vaadin/vaadin-notification"));
Assert.assertEquals("Upload should be pinned to user version.",
uploadVersion,
generatedVersions.getString("@vaadin/vaadin-upload"));
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -364,6 +364,34 @@ public void npmIsInUse_packageJsonHasNonNumericVersion_versionNotOverridden()
verifyVersionLockingWithNpmOverrides(true, false, true);
}

@Test
public void npmIsInUse_packageJsonVersionIsUpdated_vaadinSectionIsNotChanged()
throws IOException {
final JsonObject packageJson = getOrCreatePackageJson();
JsonObject dependencies = packageJson.getObject(DEPENDENCIES);
dependencies.put(VAADIN_ELEMENT_MIXIN, "1.2.3");
JsonObject vaadinSection = Json.createObject();
JsonObject vaadinDependencies = Json.createObject();
packageJson.put(VAADIN_DEP_KEY, vaadinSection);
vaadinSection.put(DEPENDENCIES, vaadinDependencies);
vaadinDependencies.put(VAADIN_ELEMENT_MIXIN,
PLATFORM_ELEMENT_MIXIN_VERSION);
FileUtils.writeStringToFile(new File(npmFolder, PACKAGE_JSON),
packageJson.toJson(), StandardCharsets.UTF_8);

createBasicVaadinVersionsJson();

final TaskUpdatePackages task = createTask(
createApplicationDependencies());
task.execute();

JsonObject newVaadinDeps = getOrCreatePackageJson()
.getObject(VAADIN_DEP_KEY).getObject(DEPENDENCIES);

Assert.assertEquals(PLATFORM_ELEMENT_MIXIN_VERSION,
newVaadinDeps.getString(VAADIN_ELEMENT_MIXIN));
}

// #11025
@Test
public void npmIsInUse_versionsJsonHasVaadinCoreVersionPinned_vaadinCoreVersionIgnored()
Expand Down

0 comments on commit 7c224e2

Please sign in to comment.