Skip to content

Commit 2469e18

Browse files
authored
Merge pull request #725 from utopia-php/chore-test-numeric-id
Add test asserting numeric ID stays string
2 parents 56efe4d + 9009a19 commit 2469e18

2 files changed

Lines changed: 30 additions & 1 deletion

File tree

src/Database/Database.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3595,7 +3595,7 @@ private function populateDocumentRelationships(Document $collection, Document $d
35953595
$side = $relationship['options']['side'];
35963596

35973597
// Clone queries to avoid mutation affecting subsequent documents
3598-
$queries = array_map(fn($query) => clone $query, $selects[$key] ?? []);
3598+
$queries = array_map(fn ($query) => clone $query, $selects[$key] ?? []);
35993599

36003600
if (!empty($value)) {
36013601
$k = $relatedCollection->getId() . ':' . $value . '=>' . $collection->getId() . ':' . $document->getId();

tests/e2e/Adapter/Scopes/DocumentTests.php

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,35 @@ public function testCreateDocument(): Document
305305
return $document;
306306
}
307307

308+
public function testCreateDocumentNumericalId(): void
309+
{
310+
/** @var Database $database */
311+
$database = static::getDatabase();
312+
313+
$database->createCollection('numericalIds');
314+
315+
$this->assertEquals(true, $database->createAttribute('numericalIds', 'name', Database::VAR_STRING, 128, true));
316+
317+
// Test creating a document with an entirely numerical ID
318+
$numericalIdDocument = $database->createDocument('numericalIds', new Document([
319+
'$id' => '123456789',
320+
'$permissions' => [
321+
Permission::read(Role::any()),
322+
],
323+
'name' => 'Test Document with Numerical ID',
324+
]));
325+
326+
$this->assertIsString($numericalIdDocument->getId());
327+
$this->assertEquals('123456789', $numericalIdDocument->getId());
328+
$this->assertEquals('Test Document with Numerical ID', $numericalIdDocument->getAttribute('name'));
329+
330+
// Verify we can retrieve the document
331+
$retrievedDocument = $database->getDocument('numericalIds', '123456789');
332+
$this->assertIsString($retrievedDocument->getId());
333+
$this->assertEquals('123456789', $retrievedDocument->getId());
334+
$this->assertEquals('Test Document with Numerical ID', $retrievedDocument->getAttribute('name'));
335+
}
336+
308337
public function testCreateDocuments(): void
309338
{
310339
$count = 3;

0 commit comments

Comments
 (0)