64 lines
2.0 KiB
Rust
64 lines
2.0 KiB
Rust
use mnote_editor_core::{
|
|
apply_ai_pipeline, EditorAiScenario, EditorInputKind, EditorPipelineRequest,
|
|
};
|
|
|
|
#[test]
|
|
fn ai_pipeline_turns_meeting_notes_into_todos() {
|
|
let result = apply_ai_pipeline(EditorPipelineRequest {
|
|
kind: EditorInputKind::PlainText,
|
|
scenario: EditorAiScenario::MeetingNotesToTodos,
|
|
input: "待办:整理会议纪要\n普通段落".into(),
|
|
})
|
|
.expect("pipeline should succeed");
|
|
|
|
assert_eq!(
|
|
result.document.blocks()[0].block_type.as_editor_label(),
|
|
"todo"
|
|
);
|
|
assert_eq!(result.audit.len(), 1);
|
|
assert!(result
|
|
.change_report
|
|
.updated_blocks
|
|
.contains(&"imported_1".to_string()));
|
|
assert!(result.markdown.contains("待办:整理会议纪要"));
|
|
}
|
|
|
|
#[test]
|
|
fn ai_pipeline_refines_long_paragraph_to_title() {
|
|
let result = apply_ai_pipeline(EditorPipelineRequest {
|
|
kind: EditorInputKind::PlainText,
|
|
scenario: EditorAiScenario::LongParagraphToTitle,
|
|
input: "这是一个很长的段落 用于提炼 标题".into(),
|
|
})
|
|
.expect("pipeline should succeed");
|
|
|
|
assert_eq!(
|
|
result.document.blocks()[0].block_type.as_editor_label(),
|
|
"heading"
|
|
);
|
|
assert_eq!(result.document.blocks()[0].heading_level, Some(1));
|
|
assert_eq!(result.audit.len(), 1);
|
|
assert!(result
|
|
.change_report
|
|
.updated_blocks
|
|
.contains(&"imported_1".to_string()));
|
|
}
|
|
|
|
#[test]
|
|
fn ai_pipeline_reorders_first_block_after_second() {
|
|
let result = apply_ai_pipeline(EditorPipelineRequest {
|
|
kind: EditorInputKind::PlainText,
|
|
scenario: EditorAiScenario::PageReorder,
|
|
input: "第一页\n\n第二页".into(),
|
|
})
|
|
.expect("pipeline should succeed");
|
|
|
|
assert_eq!(result.document.blocks()[0].content.text, "第二页");
|
|
assert_eq!(result.document.blocks()[1].content.text, "第一页");
|
|
assert_eq!(result.audit.len(), 1);
|
|
assert_eq!(
|
|
result.change_report.moved_blocks,
|
|
vec!["imported_1".to_string()]
|
|
);
|
|
}
|