Skip to content

Commit 2fe22e7

Browse files
committed
BUGFIX: Clone $request object to not change the original request
1 parent 48e6b45 commit 2fe22e7

2 files changed

Lines changed: 11 additions & 10 deletions

File tree

Classes/Eel/ElasticSearchQueryBuilder.php

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -812,6 +812,7 @@ public function cacheLifetime(): int
812812
*/
813813
protected function getNearestFutureDate(string $dateField)
814814
{
815+
$request = clone $this->request;
815816

816817
$convertDateResultToTimestamp = function (array $dateResult): int {
817818
if (!isset($dateResult['value_as_string'])) {
@@ -820,16 +821,16 @@ protected function getNearestFutureDate(string $dateField)
820821
return (new \DateTime($dateResult['value_as_string']))->getTimestamp();
821822
};
822823

823-
$this->request->queryFilter('range', [$dateField => ['gt' => 'now']], 'must');
824-
$this->request->aggregation('min' . $dateField, [
824+
$request->queryFilter('range', [$dateField => ['gt' => 'now']], 'must');
825+
$request->aggregation('minTime', [
825826
'min' => [
826827
'field' => $dateField
827828
]
828829
]);
829830

830-
$this->request->size(0);
831+
$request->size(0);
831832

832-
$requestArray = $this->request->toArray();
833+
$requestArray = $request->toArray();
833834

834835
$mustNot = Arrays::getValueByPath($requestArray, 'query.bool.filter.bool.must_not');
835836

@@ -844,7 +845,7 @@ protected function getNearestFutureDate(string $dateField)
844845

845846
$result = $this->elasticSearchClient->getIndex()->request('GET', '/_search', [], $requestArray)->getTreatedContent();
846847

847-
return $convertDateResultToTimestamp(Arrays::getValueByPath($result, 'aggregations.min' . $dateField));
848+
return $convertDateResultToTimestamp(Arrays::getValueByPath($result, 'aggregations.minTime'));
848849
}
849850

850851
/**

Tests/Functional/Eel/ElasticSearchQueryTest.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,7 @@ public function cacheLifetimeIsCalculatedCorrectly()
356356
->sortAsc('title')
357357
->cacheLifetime();
358358

359-
$this->assertEquals(3600, $cacheLifetime);
359+
$this->assertEquals(600, $cacheLifetime);
360360
}
361361

362362
/**
@@ -388,11 +388,11 @@ protected function createNodesForNodeSearchTest()
388388

389389
// Nodes for cacheLifetime test
390390
$newContentNode2 = $newDocumentNode2->getNode('main')->createNode('document-2-text-1', $this->nodeTypeManager->getNodeType('Neos.NodeTypes:Text'));
391-
$newContentNode2->setProperty('text', 'Hidden after 2030-01-01');
392-
$newContentNode2->setHiddenAfterDateTime(new \DateTime('@1532635200'));
391+
$newContentNode2->setProperty('text', 'Hidden after 2025-01-01');
392+
$newContentNode2->setHiddenAfterDateTime(new \DateTime('@1735686000'));
393393
$newContentNode3 = $newDocumentNode2->getNode('main')->createNode('document-2-text-2', $this->nodeTypeManager->getNodeType('Neos.NodeTypes:Text'));
394394
$newContentNode3->setProperty('text', 'Hidden before 2018-07-18');
395-
$newContentNode3->setHiddenBeforeDateTime(new \DateTime('@1532631600'));
395+
$newContentNode3->setHiddenBeforeDateTime(new \DateTime('@1531864800'));
396396

397397
$newDocumentNode3 = $this->siteNode->createNode('test-node-3', $this->nodeTypeManager->getNodeType('Neos.NodeTypes:Page'));
398398
$newDocumentNode3->setProperty('title', 'egg');
@@ -426,7 +426,7 @@ protected function createNodesForNodeSearchTest()
426426
protected function getQueryBuilder(): ElasticSearchQueryBuilder
427427
{
428428
$elasticSearchQueryBuilder = $this->objectManager->get(ElasticSearchQueryBuilder::class);
429-
$this->inject($elasticSearchQueryBuilder, 'now', new \DateTimeImmutable('@1532628000'));
429+
$this->inject($elasticSearchQueryBuilder, 'now', new \DateTimeImmutable('@1735685400')); // Dec. 31, 2024 23:50:00
430430

431431
return $elasticSearchQueryBuilder->query($this->siteNode);
432432
}

0 commit comments

Comments
 (0)