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,
|
||||
}
|
||||
|
||||
#[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