seed(Database\Seeders\PermissionSeeder::class); $this->seed(Database\Seeders\DefaultRoleWithPermissionSeeder::class); $this->seed(Database\Seeders\ConnectionProtocolSeeder::class); $this->seed(Database\Seeders\ConnectionProviderSeeder::class); $this->seed(Database\Seeders\ConnectionStatusSeeder::class); $this->urlProtocol = ConnectionProtocol::query()->where('name', 'url')->firstOrFail(); $this->status = ConnectionStatus::query()->where('name', 'connected')->firstOrFail(); }); it('successfully creates a URL connected app with access URL and microsoft flag', function (): void { $admin = User::factory()->create(); $admin->assignRole('admin'); $this->actingAs($admin); Livewire::test('pages::apps.url.create') ->set('form.name', 'My URL App') ->set('form.accessUrl', 'https://url-app.example.com') ->set('form.isConnectedToMicrosoft', true) ->call('save'); $this->assertDatabaseHas('connected_apps', [ 'name' => 'My URL App', 'connection_protocol_id' => $this->urlProtocol->id, ]); $app = ConnectedApp::query()->where('name', 'My URL App')->firstOrFail(); expect($app->settings)->toBeArray() ->and(data_get($app->settings, 'access_url'))->toBe('https://url-app.example.com') ->and(data_get($app->settings, 'is_connected_to_microsoft'))->toBeTrue(); }); it('validates access URL format when creating a URL app', function (): void { $admin = User::factory()->create(); $admin->assignRole('admin'); $this->actingAs($admin); Livewire::test('pages::apps.url.create') ->set('form.name', 'Invalid URL App') ->set('form.accessUrl', 'not-a-valid-url') ->call('save') ->assertHasErrors(['form.accessUrl' => 'url']); });