Skip to content

Commit aaea90f

Browse files
jyn514Joshua Nelson
authored and
Joshua Nelson
committed
Add test case for build status
1 parent 9039172 commit aaea90f

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

src/web/rustdoc.rs

+37
Original file line numberDiff line numberDiff line change
@@ -1447,6 +1447,7 @@ mod test {
14471447
}
14481448

14491449
#[test]
1450+
// regression test for https://github.com/rust-lang/docs.rs/pull/885#issuecomment-655154405
14501451
fn test_readme_rendered_as_html() {
14511452
wrapper(|env| {
14521453
let db = env.db();
@@ -1467,4 +1468,40 @@ mod test {
14671468
Ok(())
14681469
})
14691470
}
1471+
1472+
#[test]
1473+
// regression test for https://github.com/rust-lang/docs.rs/pull/885#issuecomment-655149288
1474+
fn test_build_status_is_accurate() {
1475+
wrapper(|env| {
1476+
let db = env.db();
1477+
db.fake_release()
1478+
.name("hexponent")
1479+
.version("0.3.0")
1480+
.create()?;
1481+
db.fake_release()
1482+
.name("hexponent")
1483+
.version("0.2.0")
1484+
.build_result_successful(false)
1485+
.create()?;
1486+
let web = env.frontend();
1487+
1488+
let status = |version| -> Result<_, failure::Error> {
1489+
let page =
1490+
kuchiki::parse_html().one(web.get("/crate/hexponent/0.3.0").send()?.text()?);
1491+
let selector = format!(r#"ul > li a[href="/crate/hexponent/{}""#, version);
1492+
let anchor = page
1493+
.select(&selector)
1494+
.unwrap()
1495+
.find(|a| a.text_contents().trim() == version)
1496+
.unwrap();
1497+
let attributes = anchor.as_node().as_element().unwrap().attributes.borrow();
1498+
let classes = attributes.get("class").unwrap();
1499+
Ok(classes.split(' ').all(|c| c != "warn"))
1500+
};
1501+
1502+
assert!(status("0.3.0")?);
1503+
assert!(!status("0.2.0")?);
1504+
Ok(())
1505+
})
1506+
}
14701507
}

0 commit comments

Comments
 (0)