Update required plugins if available

When plugins are updated, we should update required plugins, too, so
that we do not get errors when new plugins use features not available
in the old versions of required plugins.
This commit is contained in:
René Pfeuffer
2020-07-02 12:08:23 +02:00
parent 3b0693e744
commit e3eb8a99d0
6 changed files with 31 additions and 13 deletions

View File

@@ -227,7 +227,7 @@ class DefaultPluginManagerTest {
}
@Test
void shouldNotInstallAlreadyInstalledDependencies() {
void shouldNotInstallAlreadyInstalledDependenciesWhenUpToDate() {
AvailablePlugin review = createAvailable("scm-review-plugin");
when(review.getDescriptor().getDependencies()).thenReturn(ImmutableSet.of("scm-mail-plugin"));
AvailablePlugin mail = createAvailable("scm-mail-plugin");
@@ -244,6 +244,22 @@ class DefaultPluginManagerTest {
assertThat(captor.getValue().getDescriptor().getInformation().getName()).isEqualTo("scm-review-plugin");
}
@Test
void shouldUpdateAlreadyInstalledDependenciesWhenNewerVersionIsAvailable() {
AvailablePlugin review = createAvailable("scm-review-plugin");
when(review.getDescriptor().getDependencies()).thenReturn(ImmutableSet.of("scm-mail-plugin"));
AvailablePlugin mail = createAvailable("scm-mail-plugin", "1.1.0");
when(center.getAvailable()).thenReturn(ImmutableSet.of(review, mail));
InstalledPlugin installedMail = createInstalled("scm-mail-plugin", "1.0.0");
when(loader.getInstalledPlugins()).thenReturn(ImmutableList.of(installedMail));
manager.install("scm-review-plugin", false);
verify(installer).install(mail);
verify(installer).install(review);
}
@Test
void shouldRollbackOnFailedInstallation() {
AvailablePlugin review = createAvailable("scm-review-plugin");