From f2c930be555dd7c78ad6d30cb0d9648e6d8d211b Mon Sep 17 00:00:00 2001 From: Joshua Nelson Date: Sat, 4 Jul 2020 15:40:50 -0400 Subject: [PATCH] Link to documentation, not to /crate on homepage --- src/web/releases.rs | 26 +++++++++++++++++++++++--- tera-templates/core/home.html | 2 +- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/src/web/releases.rs b/src/web/releases.rs index c083a1763..9c4e13d7e 100644 --- a/src/web/releases.rs +++ b/src/web/releases.rs @@ -1035,13 +1035,33 @@ mod tests { let web = env.frontend(); assert_success("/", web)?; - env.db().fake_release().name("some_random_crate").create()?; env.db() .fake_release() - .name("some_random_crate_that_failed") + .name("crate_that_succeeded") + .version("0.1.0") + .create()?; + env.db() + .fake_release() + .name("crate_that_failed") + .version("0.1.0") .build_result_successful(false) .create()?; - assert_success("/", web) + let home_page = kuchiki::parse_html().one(web.get("/").send()?.text()?); + let releases: Vec<_> = home_page + .select("a.release") + .expect("missing heading") + .collect(); + assert_eq!(2, releases.len(), "expected 2 releases"); + for release in releases { + let attributes = release.attributes.borrow(); + let url = attributes.get("href").unwrap(); + if url.contains("crate_that_succeeded") { + assert_eq!(url, "/crate_that_succeeded/0.1.0/crate_that_succeeded"); + } else { + assert_eq!(url, "/crate/crate_that_failed/0.1.0"); + } + } + Ok(()) }) } diff --git a/tera-templates/core/home.html b/tera-templates/core/home.html index ab2e5dc57..2ef1435ba 100644 --- a/tera-templates/core/home.html +++ b/tera-templates/core/home.html @@ -34,7 +34,7 @@

Docs.rs