Skip to content

Commit c789ec1

Browse files
committed
fix(test): remove order-dependent assertions in testExtended
getFolderContentsById has no ORDER BY, so getFolderContents returns rows in an arbitrary order that varies across DB engines and parallel runs. Index the result by name instead of relying on array position. AI-Assisted-By: Claude Sonnet 4.6 <noreply@anthropic.com> Signed-off-by: Anna Larch <anna@nextcloud.com>
1 parent 63680bd commit c789ec1

1 file changed

Lines changed: 25 additions & 20 deletions

File tree

tests/lib/Files/Cache/CacheTest.php

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -801,26 +801,31 @@ public function testExtended(): void {
801801
$entries = $this->cache->getFolderContents('');
802802
$this->assertCount(4, $entries);
803803

804-
$this->assertEquals('foo1', $entries[0]->getName());
805-
$this->assertEquals('foo2', $entries[1]->getName());
806-
$this->assertEquals('foo3', $entries[2]->getName());
807-
$this->assertEquals('foo4', $entries[3]->getName());
808-
809-
$this->assertEquals(20, $entries[0]->getCreationTime());
810-
$this->assertEquals(0, $entries[0]->getUploadTime());
811-
$this->assertEquals(null, $entries[0]->getMetadataEtag());
812-
813-
$this->assertEquals(0, $entries[1]->getCreationTime());
814-
$this->assertEquals(30, $entries[1]->getUploadTime());
815-
$this->assertEquals(null, $entries[1]->getMetadataEtag());
816-
817-
$this->assertEquals(0, $entries[2]->getCreationTime());
818-
$this->assertEquals(0, $entries[2]->getUploadTime());
819-
$this->assertEquals('foo', $entries[2]->getMetadataEtag());
820-
821-
$this->assertEquals(0, $entries[3]->getCreationTime());
822-
$this->assertEquals(0, $entries[3]->getUploadTime());
823-
$this->assertEquals(null, $entries[3]->getMetadataEtag());
804+
// getFolderContentsById has no ORDER BY — index by name to avoid order-dependent assertions
805+
$byName = [];
806+
foreach ($entries as $entry) {
807+
$byName[$entry->getName()] = $entry;
808+
}
809+
$this->assertArrayHasKey('foo1', $byName);
810+
$this->assertArrayHasKey('foo2', $byName);
811+
$this->assertArrayHasKey('foo3', $byName);
812+
$this->assertArrayHasKey('foo4', $byName);
813+
814+
$this->assertEquals(20, $byName['foo1']->getCreationTime());
815+
$this->assertEquals(0, $byName['foo1']->getUploadTime());
816+
$this->assertEquals(null, $byName['foo1']->getMetadataEtag());
817+
818+
$this->assertEquals(0, $byName['foo2']->getCreationTime());
819+
$this->assertEquals(30, $byName['foo2']->getUploadTime());
820+
$this->assertEquals(null, $byName['foo2']->getMetadataEtag());
821+
822+
$this->assertEquals(0, $byName['foo3']->getCreationTime());
823+
$this->assertEquals(0, $byName['foo3']->getUploadTime());
824+
$this->assertEquals('foo', $byName['foo3']->getMetadataEtag());
825+
826+
$this->assertEquals(0, $byName['foo4']->getCreationTime());
827+
$this->assertEquals(0, $byName['foo4']->getUploadTime());
828+
$this->assertEquals(null, $byName['foo4']->getMetadataEtag());
824829

825830
$this->cache->update($id1, ['upload_time' => 25]);
826831

0 commit comments

Comments
 (0)