更新
This commit is contained in:
@@ -29,6 +29,23 @@ analysisParserExpect(is_string($json), 'fixture JSON encodes');
|
||||
$parsed = $parse->invoke(null, $json);
|
||||
analysisParserExpect($parsed === $validPayload, 'plain JSON parses without changing contract');
|
||||
|
||||
foreach (['diagnosis_ad', 'diagnosis_adive'] as $alias) {
|
||||
$misspelled = $validPayload;
|
||||
$misspelled[$alias] = $misspelled['diagnosis_advice'];
|
||||
unset($misspelled['diagnosis_advice']);
|
||||
analysisParserExpect(
|
||||
$parse->invoke(null, json_encode($misspelled, JSON_UNESCAPED_UNICODE)) === $validPayload,
|
||||
"observed {$alias} typo maps to canonical diagnosis field"
|
||||
);
|
||||
}
|
||||
|
||||
$ambiguous = $validPayload;
|
||||
$ambiguous['diagnosis_ad'] = '另一段诊断';
|
||||
analysisParserExpect(
|
||||
$parse->invoke(null, json_encode($ambiguous, JSON_UNESCAPED_UNICODE)) === null,
|
||||
'conflicting diagnosis fields are rejected'
|
||||
);
|
||||
|
||||
$fenced = "说明文字\n```json\n{$json}\n```\n后续文字";
|
||||
analysisParserExpect($parse->invoke(null, $fenced) === $validPayload, 'fenced JSON with surrounding text parses');
|
||||
|
||||
|
||||
Reference in New Issue
Block a user