mirror of
https://github.com/rust-lang/cargo
synced 2024-08-28 03:39:31 +00:00
test(schemas): Add PartialVersion unit tests
This commit is contained in:
parent
3a2cc82789
commit
6f22e9dbee
|
@ -189,3 +189,64 @@ fn is_req(value: &str) -> bool {
|
||||||
|| value.contains('x')
|
|| value.contains('x')
|
||||||
|| value.contains('X')
|
|| value.contains('X')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod test {
|
||||||
|
use super::*;
|
||||||
|
use snapbox::str;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn parse_success() {
|
||||||
|
let cases = &[
|
||||||
|
// Valid pre-release
|
||||||
|
("1.43.0-beta.1", str!["1.43.0-beta.1"]),
|
||||||
|
];
|
||||||
|
for (input, expected) in cases {
|
||||||
|
let actual: Result<PartialVersion, _> = input.parse();
|
||||||
|
let actual = match actual {
|
||||||
|
Ok(result) => result.to_string(),
|
||||||
|
Err(err) => format!("didn't pass: {err}"),
|
||||||
|
};
|
||||||
|
snapbox::assert_eq(expected.clone(), actual);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn parse_errors() {
|
||||||
|
let cases = &[
|
||||||
|
// Disallow caret
|
||||||
|
(
|
||||||
|
"^1.43",
|
||||||
|
str![[r#"unexpected version requirement, expected a version like "1.32""#]],
|
||||||
|
),
|
||||||
|
// Bad pre-release
|
||||||
|
(
|
||||||
|
"1.43-beta.1",
|
||||||
|
str![[r#"unexpected prerelease field, expected a version like "1.32""#]],
|
||||||
|
),
|
||||||
|
// Weird wildcard
|
||||||
|
(
|
||||||
|
"x",
|
||||||
|
str![[r#"unexpected version requirement, expected a version like "1.32""#]],
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"1.x",
|
||||||
|
str![[r#"unexpected version requirement, expected a version like "1.32""#]],
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"1.1.x",
|
||||||
|
str![[r#"unexpected version requirement, expected a version like "1.32""#]],
|
||||||
|
),
|
||||||
|
// Non-sense
|
||||||
|
("foodaddle", str![[r#"expected a version like "1.32""#]]),
|
||||||
|
];
|
||||||
|
for (input, expected) in cases {
|
||||||
|
let actual: Result<PartialVersion, _> = input.parse();
|
||||||
|
let actual = match actual {
|
||||||
|
Ok(result) => format!("didn't fail: {result:?}"),
|
||||||
|
Err(err) => err.to_string(),
|
||||||
|
};
|
||||||
|
snapbox::assert_eq(expected.clone(), actual);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue