extend(Tests\TestCase::class) ->use(RefreshDatabase::class) ->in('Feature'); pest()->extend(Tests\TestCase::class) ->in('Unit'); beforeEach(function () { putenv('INTUNE_TENANT_ID'); unset($_ENV['INTUNE_TENANT_ID'], $_SERVER['INTUNE_TENANT_ID']); }); /* |-------------------------------------------------------------------------- | Expectations |-------------------------------------------------------------------------- | | When you're writing tests, you often need to check that values meet certain conditions. The | "expect()" function gives you access to a set of "expectations" methods that you can use | to assert different things. Of course, you may extend the Expectation API at any time. | */ expect()->extend('toBeOne', function () { return $this->toBe(1); }); function fakeIdToken(string $tenantId): string { $header = rtrim(strtr(base64_encode(json_encode(['alg' => 'HS256', 'typ' => 'JWT'])), '+/', '-_'), '='); $payload = rtrim(strtr(base64_encode(json_encode(['tid' => $tenantId])), '+/', '-_'), '='); return $header.'.'.$payload.'.signature'; } /* |-------------------------------------------------------------------------- | Functions |-------------------------------------------------------------------------- | | While Pest is very powerful out-of-the-box, you may have some testing code specific to your | project that you don't want to repeat in every file. Here you can also expose helpers as | global functions to help you to reduce the number of lines of code in your test files. | */ function something() { // .. } function bindFailHardGraphClient(): void { app()->instance(GraphClientInterface::class, new FailHardGraphClient); } /** * @return array{0: User, 1: Tenant} */ function createUserWithTenant(?Tenant $tenant = null, ?User $user = null, string $role = 'owner'): array { $user ??= User::factory()->create(); $tenant ??= Tenant::factory()->create(); $user->tenants()->syncWithoutDetaching([ $tenant->getKey() => ['role' => $role], ]); return [$user, $tenant]; } /** * @return array{tenant: string} */ function filamentTenantRouteParams(Tenant $tenant): array { return ['tenant' => (string) $tenant->external_id]; }