This commit is contained in:
Your Name
2026-10-23 13:57:11 +08:00
parent ff98014fa2
commit e86ee4ae66
28 changed files with 3310 additions and 66 deletions
@@ -76,9 +76,14 @@ namespace {
missingFallbackExpect($result['items'][0]['status'] === 'skipped' && $result['items'][0]['reason'] === 'not_found',
'known missing item survives every fallback outcome');
if ($missingFallbackScenario === 'missing-image-available-document') {
missingFallbackExpect(empty($result['ok']) && $result['error_code'] === 'REQUIRED_FILES_UNSUPPORTED'
&& count($missingFallbackRequests) === 1 && $result['submitted_attachment_count'] === 0
&& $result['attachment_transfer'] === 'uploaded_files', 'unsupported fallback retains the prior staged receipt');
missingFallbackExpect(!empty($result['ok']) && $result['rejected_attachment_count'] === 1
&& count($missingFallbackRequests) === 6 && $result['submitted_attachment_count'] === 0
&& $result['attachment_transfer'] === 'uploaded_files'
&& $result['items'][1]['status'] === 'rejected' && $result['items'][1]['reason'] === 'file_type',
'unsupported document is isolated as a truthful unread gap while the confirmed missing source stays skipped');
$last = $missingFallbackRequests[count($missingFallbackRequests) - 1];
missingFallbackExpect(str_contains(json_encode($last), 'complete synthetic clinical text')
&& !str_contains(json_encode($last), 'https://fixture.invalid/missing'), 'final original body never resurrects known missing URLs');
continue;
}
missingFallbackExpect(!empty($result['ok']) && count($missingFallbackRequests) === 2