chore(api): apply rustfmt across modules and tests

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Chengdong Zhang
2026-09-21 18:52:52 +08:00
co-authored by Cursor
parent 6c1357ec4d
commit a4ef6ca49e
46 changed files with 495 additions and 334 deletions
+47 -20
View File
@@ -37,14 +37,13 @@ async fn register_user(state: &AppState, label: &str) -> Uuid {
async fn sellable_sku(state: &AppState, slug: &str, price_minor: i64, stock: i32) -> Uuid {
let slug = format!("{slug}-{}", &Uuid::new_v4().simple().to_string()[..8]);
let shop_id: Uuid = sqlx::query_scalar(
"INSERT INTO shops (name, slug) VALUES ($1, $2) RETURNING id",
)
.bind(serde_json::json!({"en": slug, "zh": slug}))
.bind(&slug)
.fetch_one(&state.db)
.await
.unwrap();
let shop_id: Uuid =
sqlx::query_scalar("INSERT INTO shops (name, slug) VALUES ($1, $2) RETURNING id")
.bind(serde_json::json!({"en": slug, "zh": slug}))
.bind(&slug)
.fetch_one(&state.db)
.await
.unwrap();
let product_id: Uuid = sqlx::query_scalar(
"INSERT INTO products (shop_id, slug, name, status)
VALUES ($1, $2, $3, 'published') RETURNING id",
@@ -73,9 +72,16 @@ async fn sellable_sku(state: &AppState, slug: &str, price_minor: i64, stock: i32
async fn checkout_rejects_empty_cart() {
let state = common::spawn_state().await;
let user_id = register_user(&state, "empty-cart").await;
let err = order::checkout(&state, user_id, address(), "USD".into(), Default::default(), None)
.await
.unwrap_err();
let err = order::checkout(
&state,
user_id,
address(),
"USD".into(),
Default::default(),
None,
)
.await
.unwrap_err();
assert!(matches!(err, ApiError::BadRequest(m) if m.contains("empty")));
}
@@ -107,9 +113,16 @@ async fn checkout_rejects_insufficient_stock() {
cart::service::add_item(&state, user_id, sku_id, 2)
.await
.unwrap();
let err = order::checkout(&state, user_id, address(), "USD".into(), Default::default(), None)
.await
.unwrap_err();
let err = order::checkout(
&state,
user_id,
address(),
"USD".into(),
Default::default(),
None,
)
.await
.unwrap_err();
assert!(matches!(err, ApiError::Conflict(m) if m.contains("insufficient stock")));
}
@@ -126,9 +139,16 @@ async fn checkout_splits_per_shop() {
cart::service::add_item(&state, user_id, sku_b, 1)
.await
.unwrap();
let orders = order::checkout(&state, user_id, address(), "USD".into(), Default::default(), None)
.await
.unwrap();
let orders = order::checkout(
&state,
user_id,
address(),
"USD".into(),
Default::default(),
None,
)
.await
.unwrap();
assert_eq!(orders.len(), 2);
let totals: Vec<i64> = orders.iter().map(|o| o.order.total_minor).collect();
assert!(totals.contains(&2000) && totals.contains(&2000));
@@ -143,9 +163,16 @@ async fn pay_and_cancel_require_pending_payment() {
cart::service::add_item(&state, user_id, sku_id, 1)
.await
.unwrap();
let orders = order::checkout(&state, user_id, address(), "USD".into(), Default::default(), None)
.await
.unwrap();
let orders = order::checkout(
&state,
user_id,
address(),
"USD".into(),
Default::default(),
None,
)
.await
.unwrap();
let id = orders[0].order.id;
order::service::pay(&state, user_id, id).await.unwrap();
let err = order::service::pay(&state, user_id, id).await.unwrap_err();