Skip to content

Commit ad10cdd

Browse files
committed
models/version: Add tests for Version::top() function
1 parent a2ff476 commit ad10cdd

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

src/models/version.rs

+56
Original file line numberDiff line numberDiff line change
@@ -252,3 +252,59 @@ impl NewVersion {
252252
Ok(())
253253
}
254254
}
255+
256+
#[cfg(test)]
257+
mod tests {
258+
use super::{TopVersions, Version};
259+
use chrono::NaiveDateTime;
260+
261+
#[track_caller]
262+
fn date(str: &str) -> NaiveDateTime {
263+
str.parse().unwrap()
264+
}
265+
266+
#[track_caller]
267+
fn version(str: &str) -> semver::Version {
268+
semver::Version::parse(str).unwrap()
269+
}
270+
271+
#[test]
272+
fn top_versions_empty() {
273+
let versions = vec![];
274+
assert_eq!(
275+
Version::top(versions),
276+
TopVersions {
277+
highest: version("0.0.0"),
278+
newest: version("0.0.0"),
279+
}
280+
);
281+
}
282+
283+
#[test]
284+
fn top_versions_single() {
285+
let versions = vec![(date("2020-12-03T12:34:56"), version("1.0.0"))];
286+
assert_eq!(
287+
Version::top(versions),
288+
TopVersions {
289+
highest: version("1.0.0"),
290+
newest: version("1.0.0"),
291+
}
292+
);
293+
}
294+
295+
#[test]
296+
fn top_versions_multiple() {
297+
let versions = vec![
298+
(date("2018-12-03T12:34:56"), version("1.0.0")),
299+
(date("2019-12-03T12:34:56"), version("2.0.0-alpha.1")),
300+
(date("2020-12-03T12:34:56"), version("1.1.0")),
301+
];
302+
assert_eq!(
303+
Version::top(versions),
304+
TopVersions {
305+
highest: version("2.0.0-alpha.1"),
306+
newest: version("1.1.0"),
307+
}
308+
);
309+
}
310+
}

0 commit comments

Comments
 (0)