toContain('') ->and($view)->toContain('') ->and($view)->toContain('') ->and(substr_count($view, 'Open Account → API Access.'))->toBe(2) ->and(substr_count($view, 'https://console.vultr.com/user/apiaccess/'))->toBe(2) ->and($view)->not->toContain('cloudProviderTokens->where(\'provider\', $provider)->isEmpty()') ->and($view)->not->toContain('') ->and($component)->toContain("'provider' => 'required|string|in:hetzner,digitalocean,vultr'"); }); it('keeps provider affiliate links on server provider views', function () { $tokenFormView = file_get_contents(__DIR__.'/../../resources/views/livewire/security/cloud-provider-token-form.blade.php'); $hetznerView = file_get_contents(__DIR__.'/../../resources/views/livewire/server/new/by-hetzner.blade.php'); $vultrView = file_get_contents(__DIR__.'/../../resources/views/livewire/server/new/by-vultr.blade.php'); $digitalOceanView = file_get_contents(__DIR__.'/../../resources/views/livewire/server/new/by-digital-ocean.blade.php'); expect($tokenFormView) ->not->toContain('https://coolify.io/hetzner') ->not->toContain('https://coolify.io/vultr') ->and($hetznerView)->toContain('https://coolify.io/hetzner') ->and($vultrView)->toContain('https://coolify.io/vultr') ->and($digitalOceanView)->toContain('https://coolify.io/digitalocean'); });