Skip to content

Commit f5fdaeb

Browse files
authored
Merge pull request #961 from pietroalbini/change-coverage-dropdown
Improve the styling of the coverage in the dropdown
2 parents c467df6 + c55a723 commit f5fdaeb

File tree

4 files changed

+47
-44
lines changed

4 files changed

+47
-44
lines changed

src/test/fakes.rs

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,7 @@ 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: Some(DocCoverage {
63-
total_items: 10,
64-
documented_items: 6,
65-
}),
62+
doc_coverage: None,
6663
},
6764
source_files: Vec::new(),
6865
rustdoc_files: Vec::new(),
@@ -186,6 +183,14 @@ impl<'a> FakeRelease<'a> {
186183
self
187184
}
188185

186+
pub(crate) fn coverage(mut self, documented_items: i32, total_items: i32) -> Self {
187+
self.build_result.doc_coverage = Some(DocCoverage {
188+
total_items,
189+
documented_items,
190+
});
191+
self
192+
}
193+
189194
/// Returns the release_id
190195
pub(crate) fn create(self) -> Result<i32, Error> {
191196
use std::fs;
@@ -277,11 +282,9 @@ impl<'a> FakeRelease<'a> {
277282
&self.registry_crate_data,
278283
)?;
279284
crate::db::add_build_into_database(&mut db.conn(), release_id, &self.build_result)?;
280-
crate::db::add_doc_coverage(
281-
&mut db.conn(),
282-
release_id,
283-
self.build_result.doc_coverage.clone().unwrap(),
284-
)?;
285+
if let Some(coverage) = self.build_result.doc_coverage {
286+
crate::db::add_doc_coverage(&mut db.conn(), release_id, coverage)?;
287+
}
285288

286289
Ok(release_id)
287290
}

src/web/mod.rs

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -638,14 +638,6 @@ mod test {
638638
node.select("#clipboard").unwrap().count() == 1
639639
}
640640

641-
fn check_doc_coverage_is_present_for_path(path: &str, web: &TestFrontend) -> bool {
642-
let data = web.get(path).send().unwrap().text().unwrap();
643-
let node = kuchiki::parse_html().one(data);
644-
node.select(".pure-menu-heading")
645-
.unwrap()
646-
.any(|e| e.text_contents().contains("Coverage"))
647-
}
648-
649641
#[test]
650642
fn test_index_returns_success() {
651643
wrapper(|env| {
@@ -659,20 +651,27 @@ mod test {
659651
fn test_doc_coverage_for_crate_pages() {
660652
wrapper(|env| {
661653
env.fake_release()
662-
.name("fake_crate")
654+
.name("foo")
663655
.version("0.0.1")
664656
.source_file("test.rs", &[])
665-
.create()
666-
.unwrap();
657+
.coverage(6, 10)
658+
.create()?;
667659
let web = env.frontend();
668-
assert!(check_doc_coverage_is_present_for_path(
669-
"/crate/fake_crate/0.0.1",
670-
web
671-
));
672-
assert!(check_doc_coverage_is_present_for_path(
673-
"/fake_crate/0.0.1/fake_crate",
674-
web
675-
));
660+
661+
let foo_crate = kuchiki::parse_html().one(web.get("/crate/foo/0.0.1").send()?.text()?);
662+
for value in &["60%", "6", "10"] {
663+
assert!(foo_crate
664+
.select(".pure-menu-item b")
665+
.unwrap()
666+
.any(|e| e.text_contents().contains(value)));
667+
}
668+
669+
let foo_doc = kuchiki::parse_html().one(web.get("/foo/0.0.1/foo").send()?.text()?);
670+
assert!(foo_doc
671+
.select(".pure-menu-link b")
672+
.unwrap()
673+
.any(|e| e.text_contents().contains("60%")));
674+
676675
Ok(())
677676
});
678677
}

templates/crate/details.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
{%- if details.documented_items and details.total_items -%}
2020
{% set percent = details.documented_items * 100 / details.total_items %}
2121
<li class="pure-menu-heading">Coverage</li>
22-
<li class="pure-menu-item" style="text-align:center;"><b>{{ percent | round(precision=2) }} %</b><br>
22+
<li class="pure-menu-item" style="text-align:center;"><b>{{ percent | round(precision=2) }}%</b><br>
2323
<span style="font-size: 13px;"><b>{{ details.documented_items }}</b> out of <b>{{ details.total_items }}</b> items documented</span>
2424
</li>
2525
{%- endif -%}

templates/rustdoc/body.html

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -117,21 +117,7 @@
117117
</div>
118118
</div>
119119

120-
{%- if krate.documented_items and krate.total_items -%}
121-
{% set percent = krate.documented_items * 100 / krate.total_items %}
122-
<div class="pure-g menu-item-divided">
123-
<div class="pure-u-1">
124-
<ul class="pure-menu-list">
125-
<li class="pure-menu-heading">Coverage</li>
126-
<li class="pure-menu-link"><b>{{ percent | round(precision=2) }} %</b><br>
127-
<span><b>{{ krate.documented_items }}</b> out of <b>{{ krate.total_items }}</b> items documented</span>
128-
</li>
129-
</ul>
130-
</div>
131-
</div>
132-
{%- endif -%}
133-
134-
<div class="pure-g">
120+
<div class="pure-g menu-item-divided">
135121
<div class="pure-u-1-2 right-border">
136122
<ul class="pure-menu-list">
137123
<li class="pure-menu-heading">Dependencies</li>
@@ -169,6 +155,21 @@
169155
</ul>
170156
</div>
171157
</div>
158+
{%- if krate.documented_items and krate.total_items -%}
159+
{% set percent = krate.documented_items * 100 / krate.total_items %}
160+
<div class="pure-g">
161+
<div class="pure-u-1">
162+
<ul class="pure-menu-list">
163+
<li>
164+
<a href="{{ crate_url | safe }}" class="pure-menu-link">
165+
<b>{{ percent | round(precision=2) }}%</b>
166+
of the crate is documented
167+
</a>
168+
</li>
169+
</ul>
170+
</div>
171+
</div>
172+
{%- endif -%}
172173
</div>
173174
</li>
174175

0 commit comments

Comments
 (0)