TestCase.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?php
  2. namespace Tests\Feature;
  3. use App\Models\Permission;
  4. use App\Models\Role;
  5. use App\Models\User;
  6. use Illuminate\Foundation\Testing\RefreshDatabase;
  7. use Illuminate\Foundation\Testing\WithFaker;
  8. use Illuminate\Support\Facades\Artisan;
  9. use Laravel\Sanctum\Sanctum;
  10. class TestCase extends \Tests\TestCase
  11. {
  12. use RefreshDatabase, WithFaker;
  13. protected function setUp(): void
  14. {
  15. parent::setUp();
  16. $user = User::factory()->create([
  17. 'username' => 'lpc',
  18. 'email' => 'test@lpc.com',
  19. 'company_id' => 1,
  20. ]);
  21. Sanctum::actingAs($user);
  22. Artisan::call("lpc:initialize-route-permission");
  23. $role = Role::factory()->create();
  24. $user->role_id = $role->id;
  25. $user->save();
  26. $role->syncPermissions(Permission::query()->pluck('name')->toArray());
  27. $user->assignRole([$role->id]);
  28. }
  29. protected function simplePaginateResponseStructure(array $data): array
  30. {
  31. return [
  32. 'data' => [
  33. '*' => $data
  34. ],
  35. 'links' => [
  36. 'first',
  37. 'last',
  38. 'prev',
  39. 'next',
  40. ],
  41. 'meta' => [
  42. 'current_page',
  43. 'from',
  44. 'path',
  45. 'per_page',
  46. 'to',
  47. ]
  48. ];
  49. }
  50. }