. */ declare(strict_types=1); namespace Tests\integration; use FireflyIII\Models\GroupMembership; use FireflyIII\Models\UserGroup; use FireflyIII\Models\UserRole; use FireflyIII\User; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\TestCase as BaseTestCase; use Tests\integration\Traits\CollectsValues; /** * Class TestCase */ abstract class TestCase extends BaseTestCase { use CollectsValues; use CreatesApplication; use RefreshDatabase; protected const MAX_ITERATIONS = 2; protected $seed = true; public function dateRangeProvider(): array { return [ 'one day' => ['1D'], 'one week' => ['1W'], 'one month' => ['1M'], 'three months' => ['3M'], 'six months' => ['6M'], 'one year' => ['1Y'], 'custom range' => ['custom'], ]; } protected function getAuthenticatedUser(): User { return User::where('email', 'james@firefly')->first(); } protected function createAuthenticatedUser(): User { $group = UserGroup::create(['title' => 'test@email.com']); $role = UserRole::where('title', 'owner')->first(); $user = User::create([ 'email' => 'test@email.com', 'password' => 'password', 'user_group_id' => $group->id, ]); GroupMembership::create( [ 'user_id' => $user->id, 'user_group_id' => $group->id, 'user_role_id' => $role->id, ] ); return $user; } }