test(compare): enforce invader resume watchdog

This commit is contained in:
2026-08-12 15:40:07 +00:00
parent 90ed246e2a
commit 0d990c090a
2 changed files with 75 additions and 0 deletions
+53
View File
@@ -0,0 +1,53 @@
<?php
namespace sammo;
use PHPUnit\Framework\TestCase;
final class AutoResetProgressTest extends TestCase
{
public function testRecordStoresInjectedWallTimeWithMicroseconds(): void
{
$storage = $this->createMock(KVStorage::class);
$storage->expects(self::once())
->method('setValue')
->with(
AutoResetProgress::STORAGE_KEY,
'2026-08-12 15:40:12.345678',
)
->willReturnSelf();
AutoResetProgress::record(
$storage,
new \DateTimeImmutable('2026-08-12 15:40:12.345678 UTC'),
);
}
public function testRecordIfAdvancedIgnoresEqualOrRegressiveTicks(): void
{
$storage = $this->createMock(KVStorage::class);
$storage->expects(self::never())->method('setValue');
self::assertFalse(AutoResetProgress::recordIfAdvanced($storage, 100, 100));
self::assertFalse(AutoResetProgress::recordIfAdvanced($storage, 100, 99));
}
public function testRecordIfAdvancedRefreshesTheWatchdogAnchor(): void
{
$storage = $this->createMock(KVStorage::class);
$storage->expects(self::once())
->method('setValue')
->with(
AutoResetProgress::STORAGE_KEY,
'2026-08-12 15:41:00.000001',
)
->willReturnSelf();
self::assertTrue(AutoResetProgress::recordIfAdvanced(
$storage,
100,
101,
new \DateTimeImmutable('2026-08-12 15:41:00.000001 UTC'),
));
}
}