Files
jabali-panel/tests/Feature/WebmailSsoViewTest.php
2026-01-24 19:36:46 +02:00

68 lines
2.0 KiB
PHP

<?php
declare(strict_types=1);
namespace Tests\Feature;
use App\Models\Domain;
use App\Models\EmailDomain;
use App\Models\Mailbox;
use App\Models\User;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
class WebmailSsoViewTest extends TestCase
{
use RefreshDatabase;
public function test_webmail_sso_shows_login_required_for_migrated_mailbox(): void
{
$user = User::factory()->create();
$domain = Domain::factory()->for($user)->createQuietly([
'domain' => 'migrated-example.test',
]);
$emailDomain = EmailDomain::create([
'domain_id' => $domain->id,
'is_active' => true,
]);
$mailbox = Mailbox::create([
'email_domain_id' => $emailDomain->id,
'user_id' => $user->id,
'local_part' => 'info',
'password_hash' => '{CRYPT}$6$examplehash',
'name' => 'Info',
]);
$response = $this->actingAs($user)->get(route('webmail.sso', $mailbox));
$response->assertStatus(200);
$response->assertSee('Webmail Login Required');
$response->assertSee('Open Webmail Login');
}
public function test_webmail_sso_shows_reset_required_when_password_missing(): void
{
$user = User::factory()->create();
$domain = Domain::factory()->for($user)->createQuietly([
'domain' => 'reset-required.test',
]);
$emailDomain = EmailDomain::create([
'domain_id' => $domain->id,
'is_active' => true,
]);
$mailbox = Mailbox::create([
'email_domain_id' => $emailDomain->id,
'user_id' => $user->id,
'local_part' => 'support',
'password_hash' => '',
'name' => 'Support',
]);
$response = $this->actingAs($user)->get(route('webmail.sso', $mailbox));
$response->assertStatus(200);
$response->assertSee('Password Reset Required');
$response->assertSee('Go to Email Settings');
}
}