Skip to content

Commit 22d6494

Browse files
sypharjyn514
authored andcommitted
build-log page should return 404 when getting text as build-id
1 parent 06dfd05 commit 22d6494

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

src/web/build_details.rs

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use crate::{
55
Config, Storage,
66
};
77
use chrono::{DateTime, Utc};
8-
use iron::{IronResult, Request, Response};
8+
use iron::{IronError, IronResult, Request, Response};
99
use router::Router;
1010
use serde::Serialize;
1111

@@ -35,7 +35,9 @@ pub fn build_details_handler(req: &mut Request) -> IronResult<Response> {
3535
let router = extension!(req, Router);
3636
let name = cexpect!(req, router.find("name"));
3737
let version = cexpect!(req, router.find("version"));
38-
let id: i32 = ctry!(req, cexpect!(req, router.find("id")).parse());
38+
let id: i32 = cexpect!(req, router.find("id"))
39+
.parse()
40+
.map_err(|_| -> IronError { Nope::BuildNotFound.into() })?;
3941

4042
let mut conn = extension!(req, Pool).get()?;
4143

@@ -89,6 +91,7 @@ pub fn build_details_handler(req: &mut Request) -> IronResult<Response> {
8991
mod tests {
9092
use crate::test::{wrapper, FakeBuild};
9193
use kuchiki::traits::TendrilSink;
94+
use test_case::test_case;
9295

9396
#[test]
9497
fn db_build_logs() {
@@ -185,15 +188,18 @@ mod tests {
185188
});
186189
}
187190

188-
#[test]
189-
fn non_existing_build() {
191+
#[test_case("42")]
192+
#[test_case("nan")]
193+
fn non_existing_build(build_id: &str) {
190194
wrapper(|env| {
191195
env.fake_release().name("foo").version("0.1.0").create()?;
192196

193-
let res = env.frontend().get("/crate/foo/0.1.0/builds/42").send()?;
197+
let res = env
198+
.frontend()
199+
.get(&format!("/crate/foo/0.1.0/builds/{}", build_id))
200+
.send()?;
194201
assert_eq!(res.status(), 404);
195-
// TODO: blocked on https://github.com/rust-lang/docs.rs/issues/55
196-
// assert!(res.text()?.contains("no such build"));
202+
assert!(res.text()?.contains("no such build"));
197203

198204
Ok(())
199205
});

0 commit comments

Comments
 (0)