Skip to content

Commit b13ef25

Browse files
Add test to ensure that doc coverage is present
1 parent 93000bd commit b13ef25

File tree

2 files changed

+40
-2
lines changed

2 files changed

+40
-2
lines changed

src/test/fakes.rs

+10-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use super::TestDatabase;
2-
use crate::docbuilder::BuildResult;
2+
use crate::docbuilder::{BuildResult, DocCoverage};
33
use crate::index::api::{CrateData, CrateOwner, ReleaseData};
44
use crate::storage::Storage;
55
use crate::utils::{Dependency, MetadataPackage, Target};
@@ -59,7 +59,10 @@ impl<'a> FakeRelease<'a> {
5959
docsrs_version: "docs.rs 1.0.0 (000000000 1970-01-01)".into(),
6060
build_log: "It works!".into(),
6161
successful: true,
62-
doc_coverage: None,
62+
doc_coverage: Some(DocCoverage {
63+
total_items: 10,
64+
documented_items: 6,
65+
}),
6366
},
6467
source_files: Vec::new(),
6568
rustdoc_files: Vec::new(),
@@ -277,6 +280,11 @@ impl<'a> FakeRelease<'a> {
277280
&self.registry_crate_data,
278281
)?;
279282
crate::db::add_build_into_database(&mut db.conn(), release_id, &self.build_result)?;
283+
crate::db::add_doc_coverage(
284+
&mut db.conn(),
285+
release_id,
286+
self.build_result.doc_coverage.clone().unwrap(),
287+
)?;
280288

281289
Ok(release_id)
282290
}

src/web/mod.rs

+30
Original file line numberDiff line numberDiff line change
@@ -668,6 +668,14 @@ mod test {
668668
node.select("#clipboard").unwrap().count() == 1
669669
}
670670

671+
fn check_doc_coverage_is_present_for_path(path: &str, web: &TestFrontend) -> bool {
672+
let data = web.get(path).send().unwrap().text().unwrap();
673+
let node = kuchiki::parse_html().one(data);
674+
node.select(".pure-menu-heading")
675+
.unwrap()
676+
.any(|e| e.text_contents().contains("Coverage"))
677+
}
678+
671679
#[test]
672680
fn test_index_returns_success() {
673681
wrapper(|env| {
@@ -677,6 +685,28 @@ mod test {
677685
});
678686
}
679687

688+
#[test]
689+
fn test_doc_coverage_for_crate_pages() {
690+
wrapper(|env| {
691+
env.fake_release()
692+
.name("fake_crate")
693+
.version("0.0.1")
694+
.source_file("test.rs", &[])
695+
.create()
696+
.unwrap();
697+
let web = env.frontend();
698+
assert!(check_doc_coverage_is_present_for_path(
699+
"/crate/fake_crate/0.0.1",
700+
web
701+
));
702+
assert!(check_doc_coverage_is_present_for_path(
703+
"/fake_crate/0.0.1/fake_crate",
704+
web
705+
));
706+
Ok(())
707+
});
708+
}
709+
680710
#[test]
681711
fn test_show_clipboard_for_crate_pages() {
682712
wrapper(|env| {

0 commit comments

Comments
 (0)