extend(TestCase::class) ->use(RefreshDatabase::class) ->in('Feature'); /* |-------------------------------------------------------------------------- | 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); }); /* |-------------------------------------------------------------------------- | 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() { // .. } /** * Bind fake provisioning services into the container and return them so a test * can script/inspect SSH, WireGuard, Proxmox, DNS and Traefik interactions. * * @return array{shell: \App\Services\Ssh\FakeRemoteShell, hub: \App\Services\Wireguard\FakeWireguardHub, pve: \App\Services\Proxmox\FakeProxmoxClient, dns: \App\Services\Dns\FakeHetznerDnsClient, traefik: \App\Services\Traefik\FakeTraefikWriter} */ function fakeServices(): array { $shell = new \App\Services\Ssh\FakeRemoteShell; $hub = new \App\Services\Wireguard\FakeWireguardHub; $pve = new \App\Services\Proxmox\FakeProxmoxClient; $dns = new \App\Services\Dns\FakeHetznerDnsClient; $traefik = new \App\Services\Traefik\FakeTraefikWriter; app()->instance(\App\Services\Ssh\RemoteShell::class, $shell); app()->instance(\App\Services\Wireguard\WireguardHub::class, $hub); app()->instance(\App\Services\Proxmox\ProxmoxClient::class, $pve); app()->instance(\App\Services\Dns\HetznerDnsClient::class, $dns); app()->instance(\App\Services\Traefik\TraefikWriter::class, $traefik); return ['shell' => $shell, 'hub' => $hub, 'pve' => $pve, 'dns' => $dns, 'traefik' => $traefik]; }