Skip to content

Commit c565f62

Browse files
Koenraad VerheydenJoshua Nelson
Koenraad Verheyden
authored and
Joshua Nelson
committed
last_successful_build: add test case if no build succeeded; slight refactor
1 parent b9b7de0 commit c565f62

File tree

1 file changed

+35
-13
lines changed

1 file changed

+35
-13
lines changed

src/web/crate_details.rs

Lines changed: 35 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ impl CrateDetails {
219219
}
220220

221221
// retrieve last successful build if build failed
222-
if crate_details.build_status == false {
222+
if !crate_details.build_status {
223223
let rows = conn.query(
224224
"SELECT version
225225
FROM releases
@@ -278,21 +278,21 @@ mod tests {
278278
use super::*;
279279
use failure::Error;
280280

281-
#[test]
282-
fn test_last_successful_build() {
283-
fn last_successful_build_equals(
284-
conn: &Connection,
285-
package: &str,
286-
version: &str,
287-
expected_last_successful_build: Option<String>
288-
) -> Result<bool, Error> {
281+
fn last_successful_build_equals(
282+
conn: &Connection,
283+
package: &str,
284+
version: &str,
285+
expected_last_successful_build: Option<String>
286+
) -> Result<bool, Error> {
289287

290-
let details = CrateDetails::new(conn, package, version)
291-
.ok_or(failure::err_msg("could not fetch crate details"))?;
288+
let details = CrateDetails::new(conn, package, version)
289+
.ok_or(failure::err_msg("could not fetch crate details"))?;
292290

293-
Ok(details.last_successful_build == expected_last_successful_build)
294-
};
291+
Ok(details.last_successful_build == expected_last_successful_build)
292+
}
295293

294+
#[test]
295+
fn test_last_successful_build() {
296296
crate::test::with_database(|db| {
297297
// Create some releases in the database, of which the last release failed to build
298298
db.fake_release()
@@ -316,4 +316,26 @@ mod tests {
316316
Ok(())
317317
});
318318
}
319+
320+
#[test]
321+
fn test_last_successful_build_but_none_succeeded() {
322+
crate::test::with_database(|db| {
323+
// Create some releases in the database, of which all failed to build
324+
db.fake_release()
325+
.name("foo")
326+
.version("0.0.1")
327+
.build_result_successful(false)
328+
.create()?;
329+
db.fake_release()
330+
.name("foo")
331+
.version("0.0.2")
332+
.build_result_successful(false)
333+
.create()?;
334+
335+
assert!(last_successful_build_equals(&db.conn(), "foo", "0.0.1", None)?);
336+
assert!(last_successful_build_equals(&db.conn(), "foo", "0.0.2", None)?);
337+
338+
Ok(())
339+
});
340+
}
319341
}

0 commit comments

Comments
 (0)