Skip to content

Commit 82b3f0b

Browse files
committed
test(adapters): add empty response_item type and null assistant content tests
Verify that response_item with empty string type degrades to Partial in Codex adapter, and Claude Code assistant message with null content field parses cleanly.
1 parent e3baa00 commit 82b3f0b

2 files changed

Lines changed: 17 additions & 0 deletions

File tree

‎crates/lore-core/src/adapters/claude_code.rs‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -991,4 +991,13 @@ mod tests {
991991
Some(" \n\t ")
992992
);
993993
}
994+
995+
#[test]
996+
fn parses_assistant_message_with_null_content_field() {
997+
let jsonl = "{\"type\":\"assistant\",\"sessionId\":\"s1\",\"message\":{\"role\":\"assistant\",\"content\":null}}\n";
998+
let session = ClaudeCodeAdapter::new().parse_str(jsonl, "null-assistant-content");
999+
assert_eq!(session.status, crate::model::ParseStatus::Ok);
1000+
assert_eq!(session.messages.len(), 1);
1001+
assert_eq!(session.messages[0].parts.len(), 0);
1002+
}
9941003
}

‎crates/lore-core/src/adapters/codex.rs‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1329,4 +1329,12 @@ mod tests {
13291329
assert_eq!(s.messages.len(), 1);
13301330
assert_eq!(s.messages[0].parts.len(), 0);
13311331
}
1332+
1333+
#[test]
1334+
fn parses_response_item_with_empty_string_type_and_notes_partial() {
1335+
let content = "{\"type\":\"response_item\",\"timestamp\":\"2026-08-11T10:00:00.000Z\",\"payload\":{\"type\":\"\"}}\n";
1336+
let s = CodexAdapter::new().parse_str(content, "empty-type");
1337+
assert_eq!(s.status, crate::model::ParseStatus::Partial);
1338+
assert!(s.notes.iter().any(|n| n.message.contains("unknown response_item")));
1339+
}
13321340
}

0 commit comments

Comments
 (0)