get(route('admin.datacenters'))->assertRedirect('/login'); $this->actingAs(User::factory()->create(['is_admin' => false]))->get(route('admin.datacenters'))->assertForbidden(); $this->actingAs(admin())->get(route('admin.datacenters'))->assertOk()->assertSee(__('datacenters.title')); }); it('creates a datacenter', function () { Livewire::actingAs(admin()) ->test(Datacenters::class) ->set('code', 'NBG') ->set('name', 'Nürnberg') ->set('location', 'DE') ->call('save') ->assertHasNoErrors(); expect(Datacenter::query()->where('code', 'nbg')->where('name', 'Nürnberg')->exists())->toBeTrue(); }); it('rejects a duplicate datacenter code', function () { Datacenter::query()->firstOrCreate(['code' => 'fsn'], ['name' => 'Falkenstein']); Livewire::actingAs(admin()) ->test(Datacenters::class) ->set('code', 'fsn')->set('name', 'Falkenstein') ->call('save') ->assertHasErrors(['code']); }); it('toggles a datacenter active flag', function () { $dc = Datacenter::factory()->create(['active' => true]); Livewire::actingAs(admin())->test(Datacenters::class)->call('toggle', $dc->uuid); expect($dc->fresh()->active)->toBeFalse(); }); it('offers only known datacenter codes when adding a host', function () { Datacenter::query()->firstOrCreate(['code' => 'fsn'], ['name' => 'Falkenstein']); // unknown code rejected Livewire::actingAs(admin()) ->test(HostCreate::class) ->set('name', 'pve-x')->set('datacenter', 'ghost')->set('public_ip', '203.0.113.5')->set('root_password', 'supersecret') ->call('save') ->assertHasErrors(['datacenter']); // known code accepted (defaults to the first active datacenter on mount) Livewire::actingAs(admin()) ->test(HostCreate::class) ->assertSet('datacenter', 'fsn'); });