Skip to content

Commit c9151b6

Browse files
Refactored Factories
1 parent 63b86ce commit c9151b6

17 files changed

+1333
-1006
lines changed

composer.lock

Lines changed: 1011 additions & 751 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
<?php
2+
3+
/** @var \Illuminate\Database\Eloquent\Factory $factory */
4+
5+
use Faker\Generator as Faker;
6+
use App\Models\Activity;
7+
use App\Models\Wiki;
8+
use App\Models\Page;
9+
use App\Models\Space;
10+
use App\Models\Comment;
11+
use App\Models\User;
12+
use App\Models\Team;
13+
14+
$factory->define(Activity::class, function (Faker $faker) {
15+
$subject = '';
16+
$subjectType = $faker->randomElement([Wiki::class, Page::class, Space::class, Comment::class]);
17+
18+
switch ($subjectType) {
19+
case str_contains($subjectType, 'Wiki'):
20+
$subject = factory(Wiki::class)->create();
21+
break;
22+
case str_contains($subjectType, 'Page'):
23+
$subject = factory(Page::class)->create();
24+
break;
25+
case str_contains($subjectType, 'Space'):
26+
$subject = factory(Space::class)->create();
27+
break;
28+
default:
29+
$subject = factory(Comment::class)->create();
30+
break;
31+
}
32+
33+
return [
34+
'name' => $faker->randomElement(['wiki_created', 'wiki_deleted', 'wiki_updated', 'page_created', 'page_deleted', 'page_updated', 'comment_created', 'comment_deleted', 'comment_updated', 'space_created', 'space_deleted', 'space_updated',]),
35+
'subject_type' => $subjectType,
36+
'subject_id' => $subject->id,
37+
'user_id' => factory(User::class)->create()->id,
38+
'team_id' => factory(Team::class)->create()->id,
39+
];
40+
});
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?php
2+
3+
/** @var \Illuminate\Database\Eloquent\Factory $factory */
4+
5+
use Faker\Generator as Faker;
6+
use App\Models\Comment;
7+
use App\Models\Wiki;
8+
use App\Models\Page;
9+
use App\Models\User;
10+
11+
$factory->define(Comment::class, function (Faker $faker) {
12+
$subjectType = $faker->randomElement([Wiki::class, Page::class]);
13+
14+
return [
15+
'content' => $faker->paragraph,
16+
'subject_type' => $subjectType,
17+
'subject_id' => str_contains($subjectType, 'Wiki') ? factory(Wiki::class)->create()->id : factory(Page::class)->create()->id,
18+
'user_id' => factory(User::class)->create()->id,
19+
];
20+
});
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
3+
/** @var \Illuminate\Database\Eloquent\Factory $factory */
4+
5+
use Faker\Generator as Faker;
6+
use App\Models\Integration;
7+
use App\Models\Team;
8+
use App\Models\User;
9+
10+
$factory->define(Integration::class, function (Generator $faker) {
11+
return [
12+
'title' => $faker->title,
13+
'slug' => $faker->slug,
14+
'url' => $faker->url,
15+
'team_id' => factory(Team::class)->create()->id,
16+
'user_id' => factory(User::class)->create()->id,
17+
];
18+
});
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?php
2+
3+
/** @var \Illuminate\Database\Eloquent\Factory $factory */
4+
5+
use Faker\Generator as Faker;
6+
use App\Models\Invite;
7+
use App\Models\Team;
8+
use App\Models\Role;
9+
10+
$factory->define(Invite::class, function (Faker $faker) {
11+
return [
12+
'code' => $faker->md5,
13+
'email' => $faker->email,
14+
'team_id' => factory(Team::class)->create()->id,
15+
'role_id' => factory(Role::class)->create()->id,
16+
];
17+
});

database/factories/LikeFactory.php

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<?php
2+
3+
/** @var \Illuminate\Database\Eloquent\Factory $factory */
4+
5+
use Faker\Generator as Faker;
6+
use App\Models\Like;
7+
use App\Models\Wiki;
8+
use App\Models\Page;
9+
use App\Models\Comment;
10+
use App\Models\User;
11+
12+
$factory->define(Like::class, function (Faker $faker) {
13+
$subjectType = $faker->randomElement([Wiki::class, Page::class, Comment::class]);
14+
15+
switch ($subjectType) {
16+
case str_contains($subjectType, 'Wiki'):
17+
$subject = factory(Wiki::class)->create();
18+
break;
19+
case str_contains($subjectType, 'Page'):
20+
$subject = factory(Page::class)->create();
21+
break;
22+
default:
23+
$subject = factory(Comment::class)->create();
24+
break;
25+
}
26+
27+
return [
28+
'subject_type' => $subjectType,
29+
'subject_id' => $subject->id,
30+
'user_id' => factory(User::class)->create()->id,
31+
];
32+
});

database/factories/ModelFactory.php

Lines changed: 0 additions & 255 deletions
This file was deleted.

0 commit comments

Comments
 (0)