use nargo_document::{
config::Config,
generator::{markdown::MarkdownRenderer, Generator},
};
use std::fs;
use tempfile::tempdir;
#[test]
fn test_config_load() {
let temp_dir = tempdir().unwrap();
let config_path = temp_dir.path().join("nargodoc.config.toml");
fs::write(
&config_path,
r#"
title = "Test Documentation"
description = "Test description"
"#,
)
.unwrap();
let config = Config::load(&config_path).unwrap();
assert_eq!(config.title, "Test Documentation");
assert_eq!(config.description, "Test description");
}
#[test]
fn test_config_default() {
let config = Config::default();
assert_eq!(config.title, "HXO Documentation");
assert_eq!(config.description, "Documentation for HXO");
assert!(config.locales.is_none());
assert!(config.theme_config.is_none());
assert!(config.markdown.is_none());
assert!(config.build.is_none());
}
#[test]
fn test_markdown_renderer() {
let renderer = MarkdownRenderer::new();
let markdown = "# Test Title\n\n**Bold text**\n\n- List item 1\n- List item 2";
let html = renderer.render(markdown).unwrap();
assert!(html.contains("<h1>Test Title</h1>"));
assert!(html.contains("<strong>Bold text</strong>"));
assert!(html.contains("<li>List item 1</li>"));
assert!(html.contains("<li>List item 2</li>"));
}
#[test]
fn test_generator() {
let temp_dir = tempdir().unwrap();
let input_dir = temp_dir.path().join("input");
let output_dir = temp_dir.path().join("output");
fs::create_dir_all(&input_dir).unwrap();
fs::write(input_dir.join("test.md"), "# Test Page\n\nThis is a test page.").unwrap();
let config = Config::default();
let mut generator = Generator::new(config);
let result = generator.generate(input_dir.to_str().unwrap(), output_dir.to_str().unwrap());
assert!(result.is_ok() || result.is_err());
}