115 lines
3.4 KiB
PHP
115 lines
3.4 KiB
PHP
<?php
|
|
|
|
namespace Tests\Browser;
|
|
|
|
use Laravel\Dusk\Browser;
|
|
use Tests\DuskTestCase;
|
|
|
|
class AccountManagementTest extends DuskTestCase
|
|
{
|
|
/**
|
|
* Helper: đăng ký tài khoản mới và đăng nhập.
|
|
*/
|
|
private function registerAndLogin(Browser $browser, string $phone): void
|
|
{
|
|
$browser->visit('/login')
|
|
->type('name', 'Dusk Test User')
|
|
->type('phone', $phone)
|
|
->type('address', 'Cần Thơ')
|
|
->radio('known_sis', '1')
|
|
->type('job', 'Nhân viên văn phòng')
|
|
->press('Gửi thông tin')
|
|
->assertPathIs('/game');
|
|
}
|
|
|
|
/**
|
|
* Cập nhật tài khoản thành công.
|
|
*/
|
|
public function test_update_account_successfully(): void
|
|
{
|
|
$phone = '09' . rand(10000000, 99999999);
|
|
|
|
$this->browse(function (Browser $browser) use ($phone) {
|
|
$this->registerAndLogin($browser, $phone);
|
|
|
|
$browser->visit('/login')
|
|
->assertSee('Cập nhật thông tin cá nhân')
|
|
->clear('name')
|
|
->type('name', 'Tên Mới Test')
|
|
->clear('address')
|
|
->type('address', 'Hà Nội')
|
|
->radio('known_sis', '0')
|
|
->clear('job')
|
|
->type('job', 'Giáo viên')
|
|
->press('Cập nhật')
|
|
->assertPathIs('/game')
|
|
->assertSee('Cập nhật tài khoản thành công');
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Cập nhật tài khoản với tên rỗng phải hiện lỗi.
|
|
*/
|
|
public function test_update_account_with_empty_name_shows_error(): void
|
|
{
|
|
$phone = '09' . rand(10000000, 99999999);
|
|
|
|
$this->browse(function (Browser $browser) use ($phone) {
|
|
$this->registerAndLogin($browser, $phone);
|
|
|
|
$browser->visit('/login')
|
|
->clear('name')
|
|
->press('Cập nhật')
|
|
->assertSee('Nhập tên hiển thị');
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Cập nhật tài khoản với số điện thoại sai phải hiện lỗi.
|
|
*/
|
|
public function test_update_account_with_invalid_phone_shows_error(): void
|
|
{
|
|
$phone = '09' . rand(10000000, 99999999);
|
|
|
|
$this->browse(function (Browser $browser) use ($phone) {
|
|
$this->registerAndLogin($browser, $phone);
|
|
|
|
$browser->visit('/login')
|
|
->clear('phone')
|
|
->type('phone', 'abcde')
|
|
->press('Cập nhật')
|
|
->assertSee('Số điện thoại không đúng định dạng');
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Trang lịch sử hoạt động hiển thị khi đã đăng nhập.
|
|
*/
|
|
public function test_history_section_visible_when_authenticated(): void
|
|
{
|
|
$phone = '09' . rand(10000000, 99999999);
|
|
|
|
$this->browse(function (Browser $browser) use ($phone) {
|
|
$this->registerAndLogin($browser, $phone);
|
|
|
|
$browser->visit('/login')
|
|
->assertSee('LỊCH SỬ HOẠT ĐỘNG');
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Đăng xuất thành công.
|
|
*/
|
|
public function test_logout_works(): void
|
|
{
|
|
$phone = '09' . rand(10000000, 99999999);
|
|
|
|
$this->browse(function (Browser $browser) use ($phone) {
|
|
$this->registerAndLogin($browser, $phone);
|
|
|
|
$browser->visit('/logout')
|
|
->assertGuest();
|
|
});
|
|
}
|
|
}
|