test(config): verify runtime persistence safety
This commit is contained in:
@@ -128,6 +128,29 @@ final class LeafRuntimeTest {
|
||||
verify(identity, org.mockito.Mockito.atLeastOnce()).remove(player);
|
||||
}
|
||||
|
||||
@Test
|
||||
void doesNotActivateASettingWhenItsPersistenceFails() throws Exception {
|
||||
Server server = mock(Server.class);
|
||||
LeafSettingsProvider settings = new LeafSettingsProvider(LeafSettings.from(Map.of()));
|
||||
LeafRuntime runtime = new LeafRuntime(
|
||||
server,
|
||||
settings,
|
||||
new LeafStateManager(new YamlLeafStateRepository(
|
||||
temporaryDirectory.resolve("failed-settings.yml")
|
||||
)),
|
||||
mock(LeafProtection.class),
|
||||
mock(LeafIdentity.class),
|
||||
replacement -> {
|
||||
throw new java.io.IOException("disk unavailable");
|
||||
}
|
||||
);
|
||||
|
||||
assertThrows(java.io.IOException.class, () -> runtime.setGlobalEnabled(false));
|
||||
|
||||
assertTrue(settings.current().enabled());
|
||||
verify(server, never()).getOnlinePlayers();
|
||||
}
|
||||
|
||||
@Test
|
||||
void resolvesLatestPreviousNamesAndUuidsWithoutGuessingAmbiguities() throws Exception {
|
||||
Server server = mock(Server.class);
|
||||
|
||||
@@ -27,5 +27,6 @@ final class LeafStateManagerTest {
|
||||
PlayerLeafState saved = repository.load().players().get(playerId);
|
||||
assertEquals(first, saved.firstJoin());
|
||||
assertEquals("AlexNew", saved.latestName());
|
||||
assertEquals(java.util.Set.of("Alex", "AlexNew"), saved.knownNames());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user