use super::*;
use serde_json::json;
#[test]
fn draft_true_is_detected() {
assert!(is_draft(&json!({"draft": true})));
}
#[test]
fn missing_draft_key_defaults_to_false() {
assert!(!is_draft(&json!({})));
}
#[test]
fn entry_fills_in_every_field_when_frontmatter_has_them_all() {
let frontmatter = json!({
"date": "2026-07-14",
"updated": "2026-07-15",
"version": "2",
"summary": "A short summary.",
"tags": ["rust", "docs"],
"pinned": true,
});
let entry = page_entry(
"design-review-sync",
"Design review sync",
"/design-review-sync",
&frontmatter,
);
assert_eq!(
entry,
json!({
"id": "design-review-sync",
"title": "Design review sync",
"date": "2026-07-14",
"updated": "2026-07-15",
"version": "2",
"url": "/design-review-sync",
"summary": "A short summary.",
"tags": ["rust", "docs"],
"pinned": true,
})
);
}
#[test]
fn entry_defaults_missing_fields_when_frontmatter_is_empty() {
let entry = page_entry(
"weekly-eng-report",
"Weekly eng report",
"/weekly-eng-report",
&json!({}),
);
assert_eq!(
entry,
json!({
"id": "weekly-eng-report",
"title": "Weekly eng report",
"date": "",
"updated": "",
"version": "",
"url": "/weekly-eng-report",
"summary": "",
"tags": [],
"pinned": false,
})
);
}
#[test]
fn non_string_tag_items_are_dropped_silently() {
let frontmatter = json!({"tags": ["rust", true, "docs"]});
let entry = page_entry("id", "Title", "/id", &frontmatter);
assert_eq!(entry["tags"], json!(["rust", "docs"]));
}