feat: advance local-first conflict and search indexing
- 补齐本地 markdown 冲突处理与合并写回路径\n- 增加本地搜索索引路由、刷新与 browser smoke\n- 同步更新 current-priority checklist 的阶段进度
This commit is contained in:
@@ -1558,6 +1558,32 @@ mod tests {
|
||||
.expect("save response");
|
||||
|
||||
assert_eq!(response.status(), StatusCode::CONFLICT);
|
||||
let body = to_bytes(response.into_body(), usize::MAX)
|
||||
.await
|
||||
.expect("body");
|
||||
let payload: Value = serde_json::from_slice(&body).expect("json");
|
||||
assert_eq!(payload["code"], "local_markdown_external_change");
|
||||
assert_eq!(
|
||||
payload["details"]["conflict"]["documentId"].as_str(),
|
||||
Some(document_id)
|
||||
);
|
||||
assert_eq!(
|
||||
payload["details"]["conflict"]["rootUri"].as_str(),
|
||||
Some(root_uri.as_str())
|
||||
);
|
||||
assert_eq!(
|
||||
payload["details"]["conflict"]["editorBaseVersion"].as_str(),
|
||||
Some(stale_file_version.as_str())
|
||||
);
|
||||
assert!(payload["details"]["conflict"]["currentDiskVersion"]
|
||||
.as_str()
|
||||
.unwrap_or("")
|
||||
.starts_with("local-md:local-mdid:expected-file-version:"));
|
||||
assert!(payload["details"]["conflict"]["suggestedActions"]
|
||||
.as_array()
|
||||
.unwrap()
|
||||
.iter()
|
||||
.any(|action| action.as_str() == Some("merge")));
|
||||
let markdown = std::fs::read_to_string(root.join("README.md")).expect("read md");
|
||||
assert!(markdown.contains("# External"));
|
||||
assert!(!markdown.contains("# Editor"));
|
||||
|
||||
Reference in New Issue
Block a user