Files
zyt/server/tests/AdminDesktopAuthContractTest.php
T
2026-09-28 14:53:47 +08:00

47 lines
1.7 KiB
PHP

<?php
declare(strict_types=1);
require dirname(__DIR__) . '/vendor/autoload.php';
use app\common\enum\AdminTerminalEnum;
function adminDesktopExpect(bool $condition, string $message): void
{
if (!$condition) {
fwrite(STDERR, "FAIL: {$message}\n");
exit(1);
}
}
adminDesktopExpect(AdminTerminalEnum::WECOM_RPA === 7, 'desktop admin terminal remains 7');
adminDesktopExpect(AdminTerminalEnum::WECOM_RPA_MOBILE === 9, 'mobile console terminal is 9');
adminDesktopExpect(
AdminTerminalEnum::WECOM_RPA_MOBILE !== \app\mcp\service\ConsoleService::TERMINAL,
'mobile console must not share the AI browser console terminal'
);
adminDesktopExpect(
AdminTerminalEnum::wecomRpaTerminals() === [7, 9],
'only the desktop and mobile console terminals may read the desktop session'
);
$validator = file_get_contents(dirname(__DIR__) . '/app/adminapi/validate/LoginValidate.php');
$controller = file_get_contents(dirname(__DIR__) . '/app/adminapi/controller/DesktopController.php');
adminDesktopExpect(is_string($validator) && is_string($controller), 'desktop auth sources are readable');
adminDesktopExpect(
str_contains($validator, 'AdminTerminalEnum::WECOM_RPA'),
'admin login accepts the dedicated desktop terminal'
);
adminDesktopExpect(
str_contains($validator, 'AdminTerminalEnum::WECOM_RPA_MOBILE'),
'admin login accepts the dedicated mobile console terminal'
);
adminDesktopExpect(
str_contains($controller, "public array \$notNeedLogin = ['session'];")
&& str_contains($controller, "'user_id' => 'admin:'")
&& str_contains($controller, "'account_type' => 'admin'"),
'desktop session verifies an admin token and namespaces its tenant identity'
);
echo "OK\n";