test: ReadingPosition serde round-trip tests for all 6 variants
This commit is contained in:
parent
8166878bf8
commit
b3a7fe0414
@ -28,3 +28,75 @@ pub enum ReadingPosition {
|
|||||||
},
|
},
|
||||||
Unknown,
|
Unknown,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_markdown_serde() {
|
||||||
|
let pos = ReadingPosition::Markdown {
|
||||||
|
block_id: "h1".into(),
|
||||||
|
scroll_progress: 0.5,
|
||||||
|
};
|
||||||
|
let json = serde_json::to_string(&pos).unwrap();
|
||||||
|
assert!(json.contains("\"type\":\"Markdown\""));
|
||||||
|
let back: ReadingPosition = serde_json::from_str(&json).unwrap();
|
||||||
|
assert_eq!(back, pos);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_text_serde() {
|
||||||
|
let pos = ReadingPosition::Text {
|
||||||
|
line_number: 42,
|
||||||
|
scroll_progress: 0.3,
|
||||||
|
};
|
||||||
|
let json = serde_json::to_string(&pos).unwrap();
|
||||||
|
let back: ReadingPosition = serde_json::from_str(&json).unwrap();
|
||||||
|
assert_eq!(back, pos);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_pdf_serde() {
|
||||||
|
let pos = ReadingPosition::Pdf {
|
||||||
|
page_number: 7,
|
||||||
|
page_progress: 0.8,
|
||||||
|
overall_progress: 0.35,
|
||||||
|
};
|
||||||
|
let json = serde_json::to_string(&pos).unwrap();
|
||||||
|
let back: ReadingPosition = serde_json::from_str(&json).unwrap();
|
||||||
|
assert_eq!(back, pos);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_image_serde() {
|
||||||
|
let pos = ReadingPosition::Image {
|
||||||
|
zoom_scale: 1.5,
|
||||||
|
offset_x: 100.0,
|
||||||
|
offset_y: 200.0,
|
||||||
|
};
|
||||||
|
let json = serde_json::to_string(&pos).unwrap();
|
||||||
|
let back: ReadingPosition = serde_json::from_str(&json).unwrap();
|
||||||
|
assert_eq!(back, pos);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_epub_serde() {
|
||||||
|
let pos = ReadingPosition::Epub {
|
||||||
|
chapter_id: "ch3".into(),
|
||||||
|
chapter_progress: 0.6,
|
||||||
|
overall_progress: 0.25,
|
||||||
|
};
|
||||||
|
let json = serde_json::to_string(&pos).unwrap();
|
||||||
|
let back: ReadingPosition = serde_json::from_str(&json).unwrap();
|
||||||
|
assert_eq!(back, pos);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_unknown_serde() {
|
||||||
|
let pos = ReadingPosition::Unknown;
|
||||||
|
let json = serde_json::to_string(&pos).unwrap();
|
||||||
|
let back: ReadingPosition = serde_json::from_str(&json).unwrap();
|
||||||
|
assert_eq!(back, pos);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user