Skip to content
Merged
Show file tree
Hide file tree
Changes from 9 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/Database/Database.php
Original file line number Diff line number Diff line change
Expand Up @@ -4941,7 +4941,7 @@ public function createOrUpdateDocumentsWithIncrease(
)));
}

$skipPermissionsUpdate = false;
$skipPermissionsUpdate = true;

if ($document->offsetExists('$permissions')) {
$originalPermissions = $old->getPermissions();
Expand Down
65 changes: 64 additions & 1 deletion tests/e2e/Adapter/Scopes/DocumentTests.php
Original file line number Diff line number Diff line change
Expand Up @@ -388,7 +388,70 @@ public function testCreateDocumentsWithDifferentAttributes(): void
$database->deleteCollection($collection);
}

public function testUpsertDocuments(): void
public function testSkipPermissions(): void
{
/** @var Database $database */
$database = static::getDatabase();

if (!$database->getAdapter()->getSupportForUpserts()) {
$this->expectNotToPerformAssertions();
return;
}

$database->createCollection(__FUNCTION__);
$database->createAttribute(__FUNCTION__, 'number', Database::VAR_INTEGER, 0, false);

$data = [];
for ($i = 1; $i <= 10; $i++) {
$data[] = [
'$id' => "$i",
'number' => $i,
];
}

$documents = array_map(fn($d) => new Document($d), $data);

$results = [];
$count = $database->createDocuments(__FUNCTION__, $documents, onNext: function ($doc) use (&$results) {
$results[] = $doc;
});

$this->assertEquals($count, \count($results));
$this->assertEquals(10, \count($results));

/**
* Update 1 row
*/
$data[\array_key_last($data)]['number'] = 100;

/**
* Add 1 row
*/
$data[] = [
'$id' => "101",
'number' => 101,
];

$documents = array_map(fn($d) => new Document($d), $data);

Authorization::disable();

$results = [];
$count = $database->createOrUpdateDocuments(
__FUNCTION__,
$documents,
onNext: function ($doc) use (&$results) {
$results[] = $doc;
}
);

Authorization::reset();

$this->assertEquals(2, \count($results));
$this->assertEquals(2, $count);
}

public function testUpsertDocuments(): void
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Outdated
{
/** @var Database $database */
$database = static::getDatabase();
Expand Down
Loading