Skip to content

Commit d0d1cd7

Browse files
committed
fix: preserve null equality conditions
1 parent 95a6b9e commit d0d1cd7

2 files changed

Lines changed: 20 additions & 1 deletion

File tree

src/Parse/ParseQuery.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ public function equalTo($key, $value)
160160
*/
161161
private function addCondition($key, $condition, $value)
162162
{
163-
if (!isset($this->where[$key])) {
163+
if (!array_key_exists($key, $this->where)) {
164164
$this->where[$key] = [];
165165
} elseif (!$this->isConditionMap($this->where[$key])) {
166166
$this->where[$key] = ['$eq' => $this->where[$key]];

tests/Parse/ParseQueryTest.php

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2827,6 +2827,25 @@ public function testEqualToAfterDirectEqualityDoesNotOverrideOtherConditions()
28272827
], $query->_getOptions());
28282828
}
28292829

2830+
/**
2831+
* @group query-equalTo-conditions
2832+
*/
2833+
public function testEqualToNullBeforeConditionPreservesNullEquality()
2834+
{
2835+
$query = new ParseQuery('TestObject');
2836+
$query->equalTo('status', null);
2837+
$query->notEqualTo('status', 'archived');
2838+
2839+
$this->assertSame([
2840+
'where' => [
2841+
'status' => [
2842+
'$eq' => null,
2843+
'$ne' => 'archived',
2844+
]
2845+
],
2846+
], $query->_getOptions());
2847+
}
2848+
28302849
/**
28312850
* @group query-equalTo-conditions
28322851
*/

0 commit comments

Comments
 (0)