Skip to content

Commit 5ce773f

Browse files
committed
refactor: Fix and test repository resolution
1 parent 2baa7fb commit 5ce773f

File tree

4 files changed

+34
-7
lines changed

4 files changed

+34
-7
lines changed

src/Concise.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -244,10 +244,10 @@ public function repository(string $class): Repository
244244
*
245245
* @phpstan-ignore argument.type
246246
*/
247-
return $this->repositories[$class] = $this->app->make($repositoryClass, [
248-
'concise' => $this,
249-
'mapper' => $mapper,
250-
'connection' => $this->databases->connection($mapper->connection()),
251-
]);
247+
return $this->repositories[$class] = new $repositoryClass(
248+
concise : $this,
249+
mapper : $mapper,
250+
connection: $this->databases->connection($mapper->connection()),
251+
);
252252
}
253253
}

src/Contracts/Repository.php

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,24 @@
22

33
namespace Articulate\Concise\Contracts;
44

5+
use Articulate\Concise\Concise;
6+
use Illuminate\Database\Connection;
7+
58
/**
69
* @template EntityType of object
710
*/
811
interface Repository
912
{
10-
13+
/**
14+
* Create a new repository instance.
15+
*
16+
* @param \Articulate\Concise\Concise $concise
17+
* @param \Articulate\Concise\Contracts\EntityMapper<EntityType> $mapper
18+
* @param \Illuminate\Database\Connection $connection
19+
*/
20+
public function __construct(
21+
Concise $concise,
22+
EntityMapper $mapper,
23+
Connection $connection
24+
);
1125
}

src/Support/BaseRepository.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
namespace Articulate\Concise\Support;
55

6+
use App\Models\User;
67
use Articulate\Concise\Concise;
78
use Articulate\Concise\Contracts\EntityMapper;
89
use Articulate\Concise\Contracts\Repository;
@@ -40,7 +41,7 @@ abstract class BaseRepository implements Repository
4041
public function __construct(
4142
Concise $concise,
4243
EntityMapper $mapper,
43-
Connection $connection
44+
Connection $connection,
4445
)
4546
{
4647
$this->concise = $concise;

tests/ConciseTest.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
use App\Mappers\Components\TimestampsMapper;
1111
use App\Mappers\Entities\UserMapper;
1212
use App\Providers\MapperServiceProvider;
13+
use App\Repositories\UserRepository;
1314
use Articulate\Concise\Concise;
1415
use Articulate\Concise\ConciseServiceProvider;
1516
use PHPUnit\Framework\Attributes\Test;
@@ -58,4 +59,15 @@ public function hasRegisteredMappersSuccessfully(): void
5859
$this->assertInstanceOf(AuthCredentialsMapper::class, $componentMappers[AuthCredentials::class]);
5960
$this->assertInstanceOf(TimestampsMapper::class, $componentMappers[Timestamps::class]);
6061
}
62+
63+
#[Test]
64+
public function bindsEntityRepositoriesCorrectly(): void
65+
{
66+
$this->assertTrue($this->app->providerIsLoaded(MapperServiceProvider::class));
67+
68+
$concise = $this->app->make(Concise::class);
69+
70+
$this->assertTrue($this->app->bound(UserRepository::class));
71+
$this->assertSame($this->app->make(UserRepository::class), $concise->repository(User::class));
72+
}
6173
}

0 commit comments

Comments
 (0)