Skip to content

Commit bbf1c3f

Browse files
committed
add test for long crate-names & versions, fix reverse migration & comment it
1 parent f1171a0 commit bbf1c3f

4 files changed

+90
-0
lines changed

.sqlx/query-23c1c88674c09e208738ebdd705db4c30d6dba6e24ca6c7c7fbf06d49d40994f.json

+22
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.sqlx/query-682dd9adacb3841d81633bb918bcfffb0d87d017a75e82b070ea493023a8d0f6.json

+22
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,10 @@
1+
-- this reverse migration might fail when we have other records
2+
-- referencing releases with longer names or versions.
3+
-- If this has to be reverted we probably would have to manually run
4+
-- db::delete::delete_crate and db::delete::delete_version for the releases
5+
-- and crates.
6+
DELETE FROM crates WHERE LENGTH(name) > 255;
7+
DELETE FROM releases WHERE LENGTH(version) > 100;
8+
19
ALTER TABLE crates ALTER COLUMN name TYPE VARCHAR(255);
210
ALTER TABLE releases ALTER COLUMN version TYPE VARCHAR(100);

src/db/add_package.rs

+38
Original file line numberDiff line numberDiff line change
@@ -1110,4 +1110,42 @@ mod test {
11101110
Ok(())
11111111
})
11121112
}
1113+
1114+
#[test]
1115+
fn test_long_crate_name() {
1116+
async_wrapper(|env| async move {
1117+
let mut conn = env.async_db().await.async_conn().await;
1118+
1119+
let name: String = "krate".repeat(100);
1120+
let crate_id = initialize_crate(&mut conn, &name).await?;
1121+
1122+
let db_name = sqlx::query_scalar!("SELECT name FROM crates WHERE id = $1", crate_id)
1123+
.fetch_one(&mut *conn)
1124+
.await?;
1125+
1126+
assert_eq!(db_name, name);
1127+
1128+
Ok(())
1129+
})
1130+
}
1131+
1132+
#[test]
1133+
fn test_long_relaase_version() {
1134+
async_wrapper(|env| async move {
1135+
let mut conn = env.async_db().await.async_conn().await;
1136+
1137+
let crate_id = initialize_crate(&mut conn, "krate").await?;
1138+
let version: String = "version".repeat(100);
1139+
let release_id = initialize_release(&mut conn, crate_id, &version).await?;
1140+
1141+
let db_version =
1142+
sqlx::query_scalar!("SELECT version FROM releases WHERE id = $1", release_id)
1143+
.fetch_one(&mut *conn)
1144+
.await?;
1145+
1146+
assert_eq!(db_version, version);
1147+
1148+
Ok(())
1149+
})
1150+
}
11131151
}

0 commit comments

Comments
 (0)