Skip to content

Commit 603ca4f

Browse files
author
Hendrik Nijmeijer
committed
Fix type tests
1 parent 409e559 commit 603ca4f

File tree

3 files changed

+20
-7
lines changed

3 files changed

+20
-7
lines changed

tests/_mocks/MockRepository.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
use Swis\JsonApi\Client\Repository;
88

99
/**
10-
* @implements \Swis\JsonApi\Client\Interfaces\RepositoryInterface<\Swis\JsonApi\Client\Tests\Mocks\ItemStub>
10+
* @extends Repository<\Swis\JsonApi\Client\Tests\Mocks\ItemStub>
1111
*/
1212
class MockRepository extends Repository
1313
{

types/Item.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
$item = new ParentItem;
88

99
assertType('Swis\JsonApi\Client\Tests\Mocks\Items\ChildItem|null', $item->child()->getData());
10-
assertType('Swis\JsonApi\Client\Collection<(int|string), Swis\JsonApi\Client\Tests\Mocks\Items\ChildItem>|null', $item->children()->getData());
10+
assertType('Swis\JsonApi\Client\Collection<int, Swis\JsonApi\Client\Tests\Mocks\Items\ChildItem>|null', $item->children()->getData());
1111

1212
assertType('Swis\JsonApi\Client\Interfaces\ItemInterface|null', $item->morph()->getData());
13-
assertType('Swis\JsonApi\Client\Collection<(int|string), Swis\JsonApi\Client\Interfaces\ItemInterface>|null', $item->morphmany()->getData());
13+
assertType('Swis\JsonApi\Client\Collection<int, Swis\JsonApi\Client\Interfaces\ItemInterface>|null', $item->morphmany()->getData());

types/Repository.php

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,26 @@
22

33
use Swis\JsonApi\Client\DocumentClient;
44
use Swis\JsonApi\Client\DocumentFactory;
5-
use Swis\JsonApi\Client\Tests\Mocks\Items\ChildItem;
5+
use Swis\JsonApi\Client\Tests\Mocks\ItemStub;
66
use Swis\JsonApi\Client\Tests\Mocks\MockRepository;
77

88
use function PHPStan\Testing\assertType;
99

1010
$repository = new MockRepository(DocumentClient::create(), new DocumentFactory);
1111

12-
assertType('Swis\JsonApi\Client\Interfaces\CollectionDocumentInterface<Swis\JsonApi\Client\Tests\Mocks\Items\ChildItem>', $repository->all());
13-
assertType('Swis\JsonApi\Client\Interfaces\ItemDocumentInterface<Swis\JsonApi\Client\Tests\Mocks\Items\ChildItem>', $repository->find('foo'));
14-
assertType('Swis\JsonApi\Client\Interfaces\ItemDocumentInterface<Swis\JsonApi\Client\Tests\Mocks\Items\ChildItem>', $repository->save(new ChildItem));
12+
$all = $repository->all();
13+
assertType('Swis\JsonApi\Client\Interfaces\CollectionDocumentInterface<Swis\JsonApi\Client\Tests\Mocks\ItemStub>', $all);
14+
assertType('Swis\JsonApi\Client\Collection<int, Swis\JsonApi\Client\Tests\Mocks\ItemStub>', $all->getData());
15+
assertType('Swis\JsonApi\Client\Tests\Mocks\ItemStub|null', $all->getData()->first());
16+
17+
$find = $repository->find('foo');
18+
assertType('Swis\JsonApi\Client\Interfaces\ItemDocumentInterface<Swis\JsonApi\Client\Tests\Mocks\ItemStub>', $find);
19+
assertType('Swis\JsonApi\Client\Tests\Mocks\ItemStub', $find->getData());
20+
21+
$take = $repository->take();
22+
assertType('Swis\JsonApi\Client\Interfaces\ItemDocumentInterface<Swis\JsonApi\Client\Tests\Mocks\ItemStub>', $take);
23+
assertType('Swis\JsonApi\Client\Tests\Mocks\ItemStub', $take->getData());
24+
25+
$save = $repository->save(new ItemStub);
26+
assertType('Swis\JsonApi\Client\Interfaces\ItemDocumentInterface<Swis\JsonApi\Client\Tests\Mocks\ItemStub>', $save);
27+
assertType('Swis\JsonApi\Client\Tests\Mocks\ItemStub', $save->getData());

0 commit comments

Comments
 (0)