Skip to content

Commit 4837342

Browse files
authored
Normalize test model setup patterns across integration tests (#2746)
1 parent 4e3c242 commit 4837342

26 files changed

+358
-213
lines changed

tests/Integration/Bind/BindDirectiveTest.php

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,11 @@ public function testModelBindingWithTooManyResultsOnFieldArgument(): void
307307
{
308308
$this->rethrowGraphQLErrors();
309309

310-
$users = factory(User::class, 2)->create(['name' => 'John Doe']);
310+
$users = factory(User::class, 2)->make();
311+
$users->each(static function (User $user): void {
312+
$user->name = 'John Doe';
313+
$user->save();
314+
});
311315

312316
$this->schema = /* @lang GraphQL */ <<<'GRAPHQL'
313317
type User {
@@ -454,7 +458,11 @@ public function testModelCollectionBindingWithTooManyResultsOnFieldArgument(): v
454458
{
455459
$this->rethrowGraphQLErrors();
456460

457-
$users = factory(User::class, 2)->create(['name' => 'John Doe']);
461+
$users = factory(User::class, 2)->make();
462+
$users->each(static function (User $user): void {
463+
$user->name = 'John Doe';
464+
$user->save();
465+
});
458466

459467
$this->schema = /* @lang GraphQL */ <<<'GRAPHQL'
460468
type User {
@@ -695,7 +703,11 @@ public function testModelBindingWithTooManyResultsOnInputField(): void
695703
{
696704
$this->rethrowGraphQLErrors();
697705

698-
$users = factory(User::class, 2)->create(['name' => 'Jane Doe']);
706+
$users = factory(User::class, 2)->make();
707+
$users->each(static function (User $user): void {
708+
$user->name = 'Jane Doe';
709+
$user->save();
710+
});
699711

700712
$this->schema = /* @lang GraphQL */ <<<'GRAPHQL'
701713
type User {
@@ -866,7 +878,11 @@ public function testModelCollectionBindingWithTooManyResultsOnInputField(): void
866878
{
867879
$this->rethrowGraphQLErrors();
868880

869-
$users = factory(User::class, 2)->create(['name' => 'Jane Doe']);
881+
$users = factory(User::class, 2)->make();
882+
$users->each(static function (User $user): void {
883+
$user->name = 'Jane Doe';
884+
$user->save();
885+
});
870886

871887
$this->schema = /* @lang GraphQL */ <<<'GRAPHQL'
872888
type User {

tests/Integration/Cache/CacheDirectiveTest.php

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -339,10 +339,13 @@ public function testStorePaginateResolverInCache(): void
339339
public function testCacheHasManyResolver(): void
340340
{
341341
$user = factory(User::class)->create();
342+
$this->assertInstanceOf(User::class, $user);
342343

343-
factory(Post::class, 3)->create([
344-
'user_id' => $user->getKey(),
345-
]);
344+
$posts = factory(Post::class, 3)->make();
345+
$posts->each(static function (Post $post) use ($user): void {
346+
$post->user()->associate($user);
347+
$post->save();
348+
});
346349

347350
$this->schema = /** @lang GraphQL */ '
348351
type Post {
@@ -406,9 +409,12 @@ public function testAttachTagsToCache(): void
406409
config(['lighthouse.cache_directive_tags' => true]);
407410

408411
$user = factory(User::class)->create();
409-
factory(Post::class, 3)->create([
410-
'user_id' => $user->getKey(),
411-
]);
412+
$this->assertInstanceOf(User::class, $user);
413+
$posts = factory(Post::class, 3)->make();
414+
$posts->each(static function (Post $post) use ($user): void {
415+
$post->user()->associate($user);
416+
$post->save();
417+
});
412418

413419
$tags = ['lighthouse:User:1', 'lighthouse:User:1:posts'];
414420

tests/Integration/Defer/DeferDBTest.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -153,9 +153,11 @@ public function testDeferNestedListFields(): void
153153
$companies = factory(Company::class, 2)
154154
->create()
155155
->each(static function (Company $company): void {
156-
factory(User::class, 3)->create([
157-
'company_id' => $company->getKey(),
158-
]);
156+
$users = factory(User::class, 3)->make();
157+
$users->each(static function (User $user) use ($company): void {
158+
$user->company()->associate($company);
159+
$user->save();
160+
});
159161
});
160162

161163
$this->mockResolver($companies);

tests/Integration/Execution/DataLoader/RelationCountBatchLoaderTest.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,11 @@ public function testResolveBatchedCountsFromBatchedRequests(): void
1313
$users = factory(User::class, 2)
1414
->create()
1515
->each(static function (User $user): void {
16-
factory(Task::class, 3)->create([
17-
'user_id' => $user->getKey(),
18-
]);
16+
$tasks = factory(Task::class, 3)->make();
17+
$tasks->each(static function (Task $task) use ($user): void {
18+
$task->user()->associate($user);
19+
$task->save();
20+
});
1921
});
2022

2123
$this->schema = /** @lang GraphQL */ '

tests/Integration/Execution/FieldBuilderDirectiveTest.php

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,12 @@ public function testLimitPostByAuthenticatedUser(): void
2626
';
2727

2828
$user = factory(User::class)->create();
29-
$ownedPosts = factory(Post::class, 3)->create([
30-
'user_id' => $user->getKey(),
31-
]);
29+
$this->assertInstanceOf(User::class, $user);
30+
$ownedPosts = factory(Post::class, 3)->make();
31+
$ownedPosts->each(static function (Post $post) use ($user): void {
32+
$post->user()->associate($user);
33+
$post->save();
34+
});
3235
factory(Post::class, 3)->create();
3336

3437
$this->be($user);
@@ -60,9 +63,12 @@ public function testChangeGuard(): void
6063
}
6164
';
6265
$user = factory(User::class)->create();
63-
$ownedPosts = factory(Post::class, 3)->create([
64-
'user_id' => $user->getKey(),
65-
]);
66+
$this->assertInstanceOf(User::class, $user);
67+
$ownedPosts = factory(Post::class, 3)->make();
68+
$ownedPosts->each(static function (Post $post) use ($user): void {
69+
$post->user()->associate($user);
70+
$post->save();
71+
});
6672
factory(Post::class, 3)->create();
6773

6874
$authFactory = $this->app->make(AuthFactory::class);

tests/Integration/Execution/MutationExecutor/BelongsToTest.php

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,8 @@ final class BelongsToTest extends DBTestCase
8585

8686
public function testCreateAndConnectWithBelongsTo(): void
8787
{
88-
factory(User::class)->create();
88+
$user = factory(User::class)->create();
89+
$this->assertInstanceOf(User::class, $user);
8990

9091
$this->graphQL(/** @lang GraphQL */ '
9192
mutation {
@@ -143,7 +144,8 @@ public function testBelongsToExplicitNullHasNoEffect(): void
143144

144145
public function testUpsertUsingCreateAndConnectWithBelongsTo(): void
145146
{
146-
factory(User::class)->create();
147+
$user = factory(User::class)->create();
148+
$this->assertInstanceOf(User::class, $user);
147149

148150
$this->graphQL(/** @lang GraphQL */ '
149151
mutation {
@@ -176,7 +178,8 @@ public function testUpsertUsingCreateAndConnectWithBelongsTo(): void
176178

177179
public function testAllowsNullOperations(): void
178180
{
179-
factory(User::class)->create();
181+
$user = factory(User::class)->create();
182+
$this->assertInstanceOf(User::class, $user);
180183

181184
$this->graphQL(/** @lang GraphQL */ '
182185
mutation {
@@ -700,10 +703,10 @@ public function testCreateUsingUpsertAndDisconnectBelongsTo(): void
700703
$user = factory(User::class)->create();
701704
$this->assertInstanceOf(User::class, $user);
702705

703-
$task = $user->tasks()->save(
704-
factory(Task::class)->make(),
705-
);
706+
$task = factory(Task::class)->make();
706707
$this->assertInstanceOf(Task::class, $task);
708+
$task->user()->associate($user);
709+
$task->save();
707710

708711
$this->graphQL(/** @lang GraphQL */ '
709712
mutation {
@@ -750,10 +753,10 @@ public function testUpdateAndDeleteBelongsTo(string $action): void
750753
$user = factory(User::class)->create();
751754
$this->assertInstanceOf(User::class, $user);
752755

753-
$task = $user->tasks()->save(
754-
factory(Task::class)->make(),
755-
);
756+
$task = factory(Task::class)->make();
756757
$this->assertInstanceOf(Task::class, $task);
758+
$task->user()->associate($user);
759+
$task->save();
757760

758761
$this->graphQL(/** @lang GraphQL */ <<<GRAPHQL
759762
mutation {
@@ -796,7 +799,8 @@ public function testUpdateAndDeleteBelongsTo(string $action): void
796799

797800
public function testCreateUsingUpsertAndDeleteBelongsTo(): void
798801
{
799-
factory(User::class)->create();
802+
$user = factory(User::class)->create();
803+
$this->assertInstanceOf(User::class, $user);
800804

801805
$this->graphQL(/** @lang GraphQL */ '
802806
mutation {
@@ -842,10 +846,10 @@ public function testDoesNotDeleteOrDisconnectOnFalsyValues(string $action): void
842846
$user = factory(User::class)->create();
843847
$this->assertInstanceOf(User::class, $user);
844848

845-
$task = $user->tasks()->save(
846-
factory(Task::class)->make(),
847-
);
849+
$task = factory(Task::class)->make();
848850
$this->assertInstanceOf(Task::class, $task);
851+
$task->user()->associate($user);
852+
$task->save();
849853

850854
$this->graphQL(/** @lang GraphQL */ <<<GRAPHQL
851855
mutation {
@@ -1052,7 +1056,8 @@ public function testUpsertAcrossTwoNestedBelongsToRelationsAndOverrideExistingMo
10521056
$this->assertSame([1], $role->users()->pluck('users.id')->toArray());
10531057

10541058
// Create another User.
1055-
factory(User::class)->create();
1059+
$user = factory(User::class)->create();
1060+
$this->assertInstanceOf(User::class, $user);
10561061

10571062
$this->graphQL(/** @lang GraphQL */ '
10581063
mutation {

tests/Integration/GlobalId/NodeDirectiveDBTest.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -177,9 +177,11 @@ public function testResolveModelsNodes(string $directiveDefinition): void
177177
}
178178
";
179179

180-
$user = factory(User::class)->create([
181-
'name' => 'Sepp',
182-
]);
180+
$user = factory(User::class)->make();
181+
$this->assertInstanceOf(User::class, $user);
182+
$user->name = 'Sepp';
183+
$user->save();
184+
183185
$globalId = $this->globalIdResolver->encode('User', $user->getKey());
184186

185187
$this->graphQL(/** @lang GraphQL */ "

tests/Integration/OrderBy/OrderByDirectiveDBTest.php

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ enum UserColumn {
3030

3131
public function testOrderByTheGivenColumnAndSortOrderASC(): void
3232
{
33-
factory(User::class)->create(['name' => 'B']);
34-
factory(User::class)->create(['name' => 'A']);
33+
$this->createUser('B');
34+
$this->createUser('A');
3535

3636
$this->graphQL(/** @lang GraphQL */ '
3737
{
@@ -62,8 +62,8 @@ public function testOrderByTheGivenColumnAndSortOrderASC(): void
6262

6363
public function testOrderByTheGivenFieldAndSortOrderDESC(): void
6464
{
65-
factory(User::class)->create(['name' => 'B']);
66-
factory(User::class)->create(['name' => 'A']);
65+
$this->createUser('B');
66+
$this->createUser('A');
6767

6868
$this->graphQL(/** @lang GraphQL */ '
6969
{
@@ -94,9 +94,9 @@ public function testOrderByTheGivenFieldAndSortOrderDESC(): void
9494

9595
public function testOrderByMultipleColumns(): void
9696
{
97-
factory(User::class)->create(['name' => 'B', 'team_id' => 2]);
98-
factory(User::class)->create(['name' => 'A', 'team_id' => 5]);
99-
factory(User::class)->create(['name' => 'C', 'team_id' => 2]);
97+
$this->createUser('B', 2);
98+
$this->createUser('A', 5);
99+
$this->createUser('C', 2);
100100

101101
$this->graphQL(/** @lang GraphQL */ '
102102
{
@@ -138,8 +138,8 @@ public function testOrderByMultipleColumns(): void
138138

139139
public function testOrderWithRestrictedColumns(): void
140140
{
141-
factory(User::class)->create(['name' => 'B']);
142-
factory(User::class)->create(['name' => 'A']);
141+
$this->createUser('B');
142+
$this->createUser('A');
143143

144144
$this->graphQL(/** @lang GraphQL */ '
145145
{
@@ -170,8 +170,8 @@ public function testOrderWithRestrictedColumns(): void
170170

171171
public function testUseColumnEnumsArg(): void
172172
{
173-
factory(User::class)->create(['name' => 'B']);
174-
factory(User::class)->create(['name' => 'A']);
173+
$this->createUser('B');
174+
$this->createUser('A');
175175

176176
$this->graphQL(/** @lang GraphQL */ '
177177
{
@@ -441,4 +441,15 @@ enum UserColumn {
441441
],
442442
]);
443443
}
444+
445+
private function createUser(string $name, ?int $teamId = null): User
446+
{
447+
$user = factory(User::class)->make();
448+
$this->assertInstanceOf(User::class, $user);
449+
$user->name = $name;
450+
$user->team_id = $teamId;
451+
$user->save();
452+
453+
return $user;
454+
}
444455
}

tests/Integration/Schema/Directives/AggregateDirectiveTest.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,11 @@ public function testSumModelWithScopes(): void
7373
';
7474

7575
factory(Task::class, 3)->create();
76-
$completed = factory(Task::class, 2)->create([
77-
'completed_at' => now(),
78-
]);
76+
$completed = factory(Task::class, 2)->create();
77+
$completed->each(static function (Task $task): void {
78+
$task->completed_at = now();
79+
$task->save();
80+
});
7981

8082
$this->graphQL(/** @lang GraphQL */ '
8183
{

tests/Integration/Schema/Directives/AllDirectiveTest.php

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,10 +91,13 @@ public function testRenamedModelWithModelDirective(): void
9191

9292
public function testGetAllAsNestedField(): void
9393
{
94-
factory(Post::class, 2)->create([
95-
// Do not create those, as they would create more users
96-
'task_id' => 1,
97-
]);
94+
factory(Post::class, 2)
95+
->create()
96+
->each(static function (Post $post): void {
97+
// Do not create those, as they would create more users.
98+
$post->task_id = 1;
99+
$post->save();
100+
});
98101

99102
$this->schema = /** @lang GraphQL */ '
100103
type User {

0 commit comments

Comments
 (0)