use super::*;
#[test]
fn curated_snippets_are_resolved_into_the_report_and_never_become_missing() {
let directory = tempfile::tempdir().expect("temp dir");
let _cwd = crate::test_support::CwdGuard::enter(directory.path());
std::fs::create_dir_all("docs/curated/docker").expect("curated directory");
std::fs::write("docs/curated/docker/quick-start.md", "curated by hand").expect("curated file");
let fixture = documented_fixture();
let mut e2e = E2eConfig::default();
e2e.call.function = "built_in_would_fail".into();
let snippet_config = SnippetConfig {
output: "docs/snippets".into(),
curated_snippets: vec!["docs/curated/docker/*.md".to_string()],
..SnippetConfig::default()
};
let extensions: Vec<Box<dyn crate::Extension>> = vec![Box::new(FixtureExtension {
body: "extension_call()",
})];
let crate_config = ResolvedCrateConfig::default();
let context = SnippetRenderContext {
e2e: &e2e,
crate_config: &crate_config,
type_defs: &[],
enums: &[],
functions: &[],
errors: &[],
};
let report =
generate_snippet_report_with_extensions(&[fixture], &["rust".into()], &snippet_config, &context, &extensions)
.expect("curated declaration coexists with generated coverage");
assert_eq!(
report.curated_paths,
vec![std::path::PathBuf::from("docs/curated/docker/quick-start.md")]
);
assert_eq!(report.coverage.generated.len(), 1);
assert!(
report.coverage.missing.is_empty(),
"a curated file must never make an unrelated fixture cell missing: {:?}",
report.coverage.missing
);
}
#[test]
fn a_curated_glob_matching_zero_files_fails_the_real_generation_run() {
let directory = tempfile::tempdir().expect("temp dir");
let _cwd = crate::test_support::CwdGuard::enter(directory.path());
std::fs::create_dir_all("docs/snippets").expect("output directory");
let fixture = documented_fixture();
let mut e2e = E2eConfig::default();
e2e.call.function = "built_in_would_fail".into();
let snippet_config = SnippetConfig {
output: "docs/snippets".into(),
curated_snippets: vec!["docs/curated/docker/*.md".to_string()],
..SnippetConfig::default()
};
let extensions: Vec<Box<dyn crate::Extension>> = vec![Box::new(FixtureExtension {
body: "extension_call()",
})];
let crate_config = ResolvedCrateConfig::default();
let context = SnippetRenderContext {
e2e: &e2e,
crate_config: &crate_config,
type_defs: &[],
enums: &[],
functions: &[],
errors: &[],
};
let error =
generate_snippet_report_with_extensions(&[fixture], &["rust".into()], &snippet_config, &context, &extensions)
.expect_err("a curated glob matching zero files must fail the real run");
assert!(error.to_string().contains("matches no file"), "{error}");
}