test(config): verify runtime persistence safety

This commit is contained in:
dmg
2026-08-10 18:30:34 -04:00
parent e53548f481
commit ab858df733
5 changed files with 37 additions and 3 deletions
@@ -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());
}
}