Initial public release of Warp.
Repo-Sync-Origin: warpdotdev/warp-internal@12af1d983b
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
use chrono::NaiveDate;
|
||||
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn test_parse_version_string() {
|
||||
let version_string = "v0.2023.05.15.08.04.stable_01";
|
||||
let parsed_version: ParsedVersion = version_string
|
||||
.try_into()
|
||||
.expect("version string is parsable");
|
||||
assert_eq!(parsed_version.major, 0);
|
||||
assert_eq!(
|
||||
parsed_version.date,
|
||||
NaiveDate::from_ymd_opt(2023, 5, 15)
|
||||
.unwrap()
|
||||
.and_hms_opt(8, 4, 0)
|
||||
.unwrap()
|
||||
);
|
||||
assert_eq!(parsed_version.patch, 1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_major_versions_compare_correctly() {
|
||||
let older_version: ParsedVersion = "v0.2023.05.15.08.04.stable_01"
|
||||
.try_into()
|
||||
.expect("older_version is parsable");
|
||||
let newer_version: ParsedVersion = "v1.2023.05.15.08.04.stable_01"
|
||||
.try_into()
|
||||
.expect("newer_version is parsable");
|
||||
assert!(newer_version > older_version);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_dates_compare_correctly() {
|
||||
let older_version: ParsedVersion = "v0.2023.05.15.08.04.stable_01"
|
||||
.try_into()
|
||||
.expect("older_version is parsable");
|
||||
let newer_version: ParsedVersion = "v0.2023.05.22.08.04.stable_00"
|
||||
.try_into()
|
||||
.expect("newer_version is parsable");
|
||||
assert!(newer_version > older_version);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_patches_compare_correctly() {
|
||||
let older_version: ParsedVersion = "v0.2023.05.15.08.04.stable_00"
|
||||
.try_into()
|
||||
.expect("older_version is parsable");
|
||||
let newer_version: ParsedVersion = "v0.2023.05.15.08.04.stable_01"
|
||||
.try_into()
|
||||
.expect("newer_version is parsable");
|
||||
assert!(newer_version > older_version);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_ignores_unknown_channels() {
|
||||
// We no longer support or parse-out beta and canary versions, but we
|
||||
// need to be able to parse a JSON file that still contains them.
|
||||
let channel_version_string = r#"{
|
||||
"beta": {
|
||||
"version": "v0.2024.01.30.16.52.beta_00"
|
||||
},
|
||||
"canary": {
|
||||
"version": "v0.2022.09.29.08.08.canary_00"
|
||||
},
|
||||
"dev": {
|
||||
"version": "v0.2024.01.30.20.34.dev_00"
|
||||
},
|
||||
"preview": {
|
||||
"version": "v0.2024.01.30.20.34.preview_00"
|
||||
},
|
||||
"stable": {
|
||||
"version": "v0.2024.01.16.16.31.stable_01"
|
||||
}
|
||||
}"#;
|
||||
|
||||
let channel_versions: ChannelVersions = serde_json::from_str(channel_version_string)
|
||||
.expect("Should be able to parse channel versions");
|
||||
assert_eq!(
|
||||
channel_versions.stable.version_info().version,
|
||||
"v0.2024.01.16.16.31.stable_01"
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user