extraPluginsToLoad[] = 'ArchivingMetrics'; parent::setUpBeforeClass(); } public function setUp(): void { parent::setUp(); Timer::resetInstanceForTests(); } public function testArchiveReportsWritesMetricsOnceAndDoesNotWriteAgainWhenReusingDbArchive(): void { Fixture::createSuperUser(true); $_GET['trigger'] = 'archivephp'; $idSite = Fixture::createWebsite('2024-01-01 00:00:00'); $t = Fixture::getTracker($idSite, '2024-01-01 12:00:00'); $t->setUrl('http://example.com/'); Fixture::checkResponse($t->doTrackPageView('test')); CoreAdminHomeAPI::getInstance()->archiveReports($idSite, 'day', '2024-01-01'); $this->assertSame(1, $this->getMetricsCount(), 'Expected archiving_metrics to have 1 row after first archiveReports call.'); CoreAdminHomeAPI::getInstance()->archiveReports($idSite, 'day', '2024-01-01'); $this->assertSame(1, $this->getMetricsCount(), 'Expected archiving_metrics to still have 1 row after reusing the same DB archive.'); } private function getMetricsCount(): int { return (int) Db::fetchOne('SELECT COUNT(*) FROM ' . Common::prefixTable('archiving_metrics')); } }