Skip to content

Commit 7452fff

Browse files
committed
fix phpstan performance issues
1 parent aeead1a commit 7452fff

1 file changed

Lines changed: 24 additions & 15 deletions

File tree

tests/profiles/CursorPaginationProfileTest.php

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -76,21 +76,30 @@ public function test_WithRelationship(): void {
7676
parent::assertArrayHasKey('data', $array);
7777
parent::assertArrayHasKey('relationships', $array['data']);
7878
parent::assertArrayHasKey('people', $array['data']['relationships']);
79-
parent::assertArrayHasKey('links', $array['data']['relationships']['people']);
80-
parent::assertArrayHasKey('data', $array['data']['relationships']['people']);
81-
parent::assertArrayHasKey('meta', $array['data']['relationships']['people']);
82-
parent::assertArrayHasKey('prev', $array['data']['relationships']['people']['links']);
83-
parent::assertArrayHasKey('next', $array['data']['relationships']['people']['links']);
84-
parent::assertArrayHasKey('page', $array['data']['relationships']['people']['meta']);
85-
parent::assertArrayHasKey('href', $array['data']['relationships']['people']['links']['prev']);
86-
parent::assertArrayHasKey('href', $array['data']['relationships']['people']['links']['next']);
87-
parent::assertArrayHasKey('total', $array['data']['relationships']['people']['meta']['page']);
88-
parent::assertArrayHasKey('estimatedTotal', $array['data']['relationships']['people']['meta']['page']);
89-
parent::assertArrayHasKey('bestGuess', $array['data']['relationships']['people']['meta']['page']['estimatedTotal']);
90-
parent::assertCount(3, $array['data']['relationships']['people']['data']);
91-
parent::assertArrayHasKey('meta', $array['data']['relationships']['people']['data'][0]);
92-
parent::assertArrayHasKey('page', $array['data']['relationships']['people']['data'][0]['meta']);
93-
parent::assertArrayHasKey('cursor', $array['data']['relationships']['people']['data'][0]['meta']['page']);
79+
80+
// re-map nested arrays to variables to speed up phpstan
81+
// without it, this file takes 10 seconds (!) more to process
82+
83+
$people = $array['data']['relationships']['people'];
84+
parent::assertArrayHasKey('links', $people);
85+
parent::assertArrayHasKey('data', $people);
86+
parent::assertArrayHasKey('meta', $people);
87+
parent::assertArrayHasKey('prev', $people['links']);
88+
parent::assertArrayHasKey('next', $people['links']);
89+
parent::assertArrayHasKey('page', $people['meta']);
90+
parent::assertArrayHasKey('href', $people['links']['prev']);
91+
parent::assertArrayHasKey('href', $people['links']['next']);
92+
93+
$peopleMeta = $people['meta'];
94+
parent::assertArrayHasKey('total', $peopleMeta['page']);
95+
parent::assertArrayHasKey('estimatedTotal', $peopleMeta['page']);
96+
parent::assertArrayHasKey('bestGuess', $peopleMeta['page']['estimatedTotal']);
97+
parent::assertCount(3, $people['data']);
98+
99+
$firstPerson = $people['data'][0];
100+
parent::assertArrayHasKey('meta', $firstPerson);
101+
parent::assertArrayHasKey('page', $firstPerson['meta']);
102+
parent::assertArrayHasKey('cursor', $firstPerson['meta']['page']);
94103
}
95104

96105
public function testSetLinksFirstPage_HappyPath(): void {

0 commit comments

Comments
 (0)