Files
datahub/backend/test/Cases/Unit/Model/RoleTest.php
T

70 lines
1.8 KiB
PHP
Raw Normal View History

2026-03-09 10:15:43 +08:00
<?php
declare(strict_types=1);
namespace HyperfTest\Cases\Unit\Model;
use App\Model\Role;
use PHPUnit\Framework\TestCase;
/**
* @internal
* @coversNothing
*/
class RoleTest extends TestCase
{
protected function runInCoroutine(callable $callback): void
{
$exception = null;
\Swoole\Coroutine\run(static function () use ($callback, &$exception): void {
try {
$callback();
} catch (\Throwable $e) {
$exception = $e;
}
});
if ($exception) {
throw $exception;
}
}
public function test_role_has_correct_fillable(): void
{
$role = new Role();
$this->assertEqualsCanonicalizing(['name', 'label', 'description'], $role->getFillable());
}
public function test_role_table_name(): void
{
$role = new Role();
$this->assertSame('roles', $role->getTable());
}
public function test_administrator_role_exists(): void
{
$this->runInCoroutine(function (): void {
$role = Role::query()->where('name', 'administrator')->first();
$this->assertNotNull($role);
$this->assertSame('超级管理员', $role->label);
});
}
public function test_developer_role_exists(): void
{
$this->runInCoroutine(function (): void {
$role = Role::query()->where('name', 'developer')->first();
$this->assertNotNull($role);
$this->assertSame('开发者', $role->label);
});
}
public function test_accessor_role_exists(): void
{
$this->runInCoroutine(function (): void {
$role = Role::query()->where('name', 'accessor')->first();
$this->assertNotNull($role);
$this->assertSame('数据访问者', $role->label);
});
}
}