48 lines
1.3 KiB
PHP
48 lines
1.3 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
require dirname(__DIR__) . '/vendor/autoload.php';
|
|
|
|
use app\adminapi\validate\tcm\DiagnosisValidate;
|
|
|
|
function diagnosisAddSceneExpect(bool $condition, string $message): void
|
|
{
|
|
if (!$condition) {
|
|
fwrite(STDERR, "FAIL: {$message}\n");
|
|
exit(1);
|
|
}
|
|
}
|
|
|
|
$validateSource = file_get_contents(
|
|
dirname(__DIR__) . '/app/adminapi/validate/tcm/DiagnosisValidate.php'
|
|
);
|
|
diagnosisAddSceneExpect(is_string($validateSource), 'DiagnosisValidate source is readable');
|
|
diagnosisAddSceneExpect(
|
|
str_contains($validateSource, "->remove('task', true)"),
|
|
'add scene strips the AI assistant task rule'
|
|
);
|
|
diagnosisAddSceneExpect(
|
|
str_contains($validateSource, "return \$this->only(['id', 'task', 'prompt']);"),
|
|
'aiAssistant scene still requires a task'
|
|
);
|
|
|
|
$addPayload = [
|
|
'patient_name' => '张三',
|
|
'phone' => '13800138000',
|
|
'gender' => 1,
|
|
'age' => 50,
|
|
'diagnosis_type' => 'follow_up',
|
|
'local_hospital_name' => '某医院',
|
|
];
|
|
|
|
$addScene = (new DiagnosisValidate())->scene('add');
|
|
$addOk = $addScene->check($addPayload);
|
|
diagnosisAddSceneExpect(
|
|
$addOk === true,
|
|
'add scene accepts a diagnosis payload without an AI assistant task'
|
|
. ($addOk ? '' : '; got: ' . $addScene->getError())
|
|
);
|
|
|
|
echo "Diagnosis add-scene validation: OK\n";
|