Fixed startup lifecycle test

- The levels-ready startup test drives the parallel dimension restore instead of the removed per-dimension restore call
This commit is contained in:
Brian Neumann-Fopiano committed 2026-10-16 10:44:12 -04:00
1 parent b8aa00b70e
commit 03c2630497
3 files changed
+14 -73

No files matched your search

@@ -9,10 +9,13 @@ import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean;
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.CALLS_REAL_METHODS;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.mockStatic;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
public class ModdedStartupLifecycleTest {
@@ -22,6 +25,7 @@ public class ModdedStartupLifecycleTest {
}
@Test
@SuppressWarnings("unchecked")
public void restoresAfterWorldsLoadWithoutRepeatingDuringServerTicks() {
NativeModdedServer server = mock(NativeModdedServer.class);
AtomicBoolean worldsRefreshed = new AtomicBoolean();
@@ -32,28 +36,30 @@ public class ModdedStartupLifecycleTest {
when(server.hasPlayerList()).thenReturn(true);
ModdedDimensionRegistryStore.PersistentDimension dimension =
new ModdedDimensionRegistryStore.PersistentDimension("iris:moon", "overworld", "overworld", 1337L);
ModdedDimensionInjection<Object, Object, Object> restore = mock(ModdedDimensionInjection.class);
when(restore.finish()).thenAnswer(invocation -> {
assertTrue(worldsRefreshed.get());
return List.of();
});
try (MockedStatic<ModdedStartup> startup = mockStatic(ModdedStartup.class, CALLS_REAL_METHODS);
MockedStatic<ModdedDimensionRegistryStore> store = mockStatic(ModdedDimensionRegistryStore.class);
MockedStatic<ModdedDimensionManager> manager = mockStatic(ModdedDimensionManager.class);
MockedStatic<ModdedDimensionInjection> injection = mockStatic(ModdedDimensionInjection.class);
MockedStatic<ModdedForcedDatapack> datapack = mockStatic(ModdedForcedDatapack.class);
MockedStatic<ModdedMixinAudit> audit = mockStatic(ModdedMixinAudit.class);
MockedStatic<ModdedIrisLog> log = mockStatic(ModdedIrisLog.class)) {
startup.when(ModdedStartup::prepareForStartup).thenAnswer(invocation -> null);
store.when(() -> ModdedDimensionRegistryStore.loadForStartup(server)).thenReturn(List.of(dimension));
manager.when(() -> ModdedDimensionManager.restorePersistent(server, "iris:moon", "overworld", "overworld", 1337L))
.thenAnswer(invocation -> {
assertTrue(worldsRefreshed.get());
return null;
});
injection.when(() -> ModdedDimensionInjection.start(eq(List.of(dimension)), any())).thenReturn(restore);
ModdedLifecycleCallbacks.create().levelsReady().accept(server);
manager.verify(() -> ModdedDimensionManager.restorePersistent(server, "iris:moon", "overworld", "overworld", 1337L));
verify(restore).finish();
ModdedStartup.runOnce(server);
ModdedStartup.runOnce(server);
store.verify(() -> ModdedDimensionRegistryStore.loadForStartup(server), times(1));
manager.verify(() -> ModdedDimensionManager.restorePersistent(server, "iris:moon", "overworld", "overworld", 1337L), times(1));
injection.verify(() -> ModdedDimensionInjection.start(any(), any()), times(1));
verify(restore, times(1)).finish();
datapack.verify(ModdedForcedDatapack::verifyInjected, times(1));
audit.verify(ModdedMixinAudit::runOnce, times(1));
}