cargo fmt
This commit is contained in:
@@ -23,9 +23,7 @@ pub struct ExtractPointerPayload {
|
||||
|
||||
/// `RestoredState.extensions` から最新の Phase 1 pointer を取り出す。
|
||||
/// 未抽出セッションでは `None`。
|
||||
pub fn fold_pointer(
|
||||
extensions: &[(String, serde_json::Value)],
|
||||
) -> Option<ExtractPointerPayload> {
|
||||
pub fn fold_pointer(extensions: &[(String, serde_json::Value)]) -> Option<ExtractPointerPayload> {
|
||||
extensions
|
||||
.iter()
|
||||
.rev()
|
||||
@@ -48,10 +46,7 @@ mod tests {
|
||||
"staging_id": "old"
|
||||
}),
|
||||
),
|
||||
(
|
||||
"other.domain".to_string(),
|
||||
serde_json::json!({ "x": 1 }),
|
||||
),
|
||||
("other.domain".to_string(), serde_json::json!({ "x": 1 })),
|
||||
(
|
||||
EXTRACT_DOMAIN.to_string(),
|
||||
serde_json::json!({
|
||||
@@ -69,21 +64,16 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn fold_returns_none_when_absent() {
|
||||
let exts = vec![(
|
||||
"other.domain".to_string(),
|
||||
serde_json::json!({ "x": 1 }),
|
||||
)];
|
||||
let exts = vec![("other.domain".to_string(), serde_json::json!({ "x": 1 }))];
|
||||
assert!(fold_pointer(&exts).is_none());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn fold_skips_malformed_entries() {
|
||||
let exts = vec![
|
||||
(
|
||||
EXTRACT_DOMAIN.to_string(),
|
||||
serde_json::json!({ "wrong_shape": true }),
|
||||
),
|
||||
];
|
||||
let exts = vec![(
|
||||
EXTRACT_DOMAIN.to_string(),
|
||||
serde_json::json!({ "wrong_shape": true }),
|
||||
)];
|
||||
// 現状は最新を取り出して JSON 不一致なら None。古いものに fallback
|
||||
// しないのは、壊れた最新を黙って無視すると意図しない再抽出を招くため。
|
||||
assert!(fold_pointer(&exts).is_none());
|
||||
|
||||
@@ -84,7 +84,12 @@ mod tests {
|
||||
};
|
||||
let (id, path) = write_staging(&layout, source.clone(), payload).unwrap();
|
||||
assert_eq!(path.parent().unwrap(), layout.staging_dir());
|
||||
assert!(path.file_name().unwrap().to_string_lossy().contains(&id.to_string()));
|
||||
assert!(
|
||||
path.file_name()
|
||||
.unwrap()
|
||||
.to_string_lossy()
|
||||
.contains(&id.to_string())
|
||||
);
|
||||
|
||||
let written: StagingRecord =
|
||||
serde_json::from_str(&fs::read_to_string(&path).unwrap()).unwrap();
|
||||
@@ -101,8 +106,7 @@ mod tests {
|
||||
session_id: "sess".into(),
|
||||
range: [0, 0],
|
||||
};
|
||||
let (_, path) =
|
||||
write_staging(&layout, source, ExtractedPayload::default()).unwrap();
|
||||
let (_, path) = write_staging(&layout, source, ExtractedPayload::default()).unwrap();
|
||||
let written: StagingRecord =
|
||||
serde_json::from_str(&fs::read_to_string(&path).unwrap()).unwrap();
|
||||
assert!(written.payload.is_empty());
|
||||
|
||||
@@ -134,8 +134,9 @@ mod tests {
|
||||
let ctx = Arc::new(ExtractWorkerContext::new());
|
||||
let tool: Arc<dyn Tool> = Arc::new(WriteExtractedTool { ctx: ctx.clone() });
|
||||
|
||||
let first = serde_json::json!({"decisions": [], "discussions": [], "attempts": [], "requests": []})
|
||||
.to_string();
|
||||
let first =
|
||||
serde_json::json!({"decisions": [], "discussions": [], "attempts": [], "requests": []})
|
||||
.to_string();
|
||||
tool.execute(&first).await.unwrap();
|
||||
|
||||
let second = serde_json::json!({
|
||||
|
||||
Reference in New Issue
Block a user