Skip to content

Commit 27e9619

Browse files
committed
Write a failing test for supporting large version nums in rev_deps
Connects to #1839.
1 parent 12c64bc commit 27e9619

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

src/tests/krate.rs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1903,6 +1903,31 @@ fn reverse_dependencies_includes_published_by_user_when_present() {
19031903
);
19041904
}
19051905

1906+
#[test]
1907+
fn reverse_dependencies_query_supports_u64_version_number_parts() {
1908+
let (app, anon, user) = TestApp::init().with_user();
1909+
let user = user.as_model();
1910+
1911+
let large_but_valid_version_number = format!("1.0.{}", std::u64::MAX);
1912+
1913+
app.db(|conn| {
1914+
let c1 = CrateBuilder::new("c1", user.id).expect_build(conn);
1915+
// The crate that depends on c1...
1916+
CrateBuilder::new("c2", user.id)
1917+
// ...has a patch version at the limits of what the semver crate supports
1918+
.version(VersionBuilder::new(&large_but_valid_version_number).dependency(&c1, None))
1919+
.expect_build(conn);
1920+
});
1921+
1922+
let deps = anon.reverse_dependencies("c1");
1923+
assert_eq!(deps.dependencies.len(), 1);
1924+
assert_eq!(deps.meta.total, 1);
1925+
assert_eq!(deps.dependencies[0].crate_id, "c1");
1926+
assert_eq!(deps.versions.len(), 1);
1927+
assert_eq!(deps.versions[0].krate, "c2");
1928+
assert_eq!(deps.versions[0].num, large_but_valid_version_number);
1929+
}
1930+
19061931
#[test]
19071932
fn author_license_and_description_required() {
19081933
let (_, _, _, token) = TestApp::init().with_token();

0 commit comments

Comments
 (0)