<?php

use App\Models\PlatformUser;
use App\Models\User;
use Illuminate\Foundation\Testing\RefreshDatabase;

uses(RefreshDatabase::class);

it('allows guests to access both panel login pages', function () {
    $this->get('/admin/login')->assertSuccessful();
    $this->get('/system/login')->assertSuccessful();
});

it('returns 404 when a platform session accesses the admin panel', function () {
    $platformUser = PlatformUser::factory()->create();
    $this->actingAs($platformUser, 'platform');

    $this->get('/admin/login')->assertNotFound();
});

it('returns 404 when a tenant session accesses the system panel', function () {
    $user = User::factory()->create();
    $this->actingAs($user);

    $this->get('/system/login')->assertNotFound();

    // Filament may switch the active guard within the test process,
    // so ensure the tenant session is set for each request we assert.
    $this->actingAs($user);
    $this->get('/system')->assertNotFound();
});
