Test order addresses
This commit is contained in:
parent
69bf0b5dff
commit
9b1e95fe81
@ -36,7 +36,7 @@ SELECT
|
|||||||
order_addresses.street,
|
order_addresses.street,
|
||||||
order_addresses.city,
|
order_addresses.city,
|
||||||
order_addresses.country,
|
order_addresses.country,
|
||||||
order_addresses.zip
|
order_addresses.zip,
|
||||||
order_addresses.phone
|
order_addresses.phone
|
||||||
FROM order_addresses
|
FROM order_addresses
|
||||||
INNER JOIN orders ON orders.address_id = order_addresses.id
|
INNER JOIN orders ON orders.address_id = order_addresses.id
|
||||||
@ -46,7 +46,11 @@ WHERE orders.id = $1
|
|||||||
.bind(msg.order_id)
|
.bind(msg.order_id)
|
||||||
.fetch_one(pool)
|
.fetch_one(pool)
|
||||||
.await
|
.await
|
||||||
.map_err(|_| Error::OrderAddress.into())
|
.map_err(|e| {
|
||||||
|
tracing::error!("{e}");
|
||||||
|
dbg!(e);
|
||||||
|
Error::OrderAddress.into()
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(actix::Message)]
|
#[derive(actix::Message)]
|
||||||
@ -156,6 +160,44 @@ mod tests {
|
|||||||
|
|
||||||
use crate::*;
|
use crate::*;
|
||||||
|
|
||||||
|
async fn test_account(t: &mut sqlx::Transaction<'_, sqlx::Postgres>) -> FullAccount {
|
||||||
|
use fake::faker::internet::en;
|
||||||
|
let login: String = en::Username().fake();
|
||||||
|
let email: String = en::FreeEmail().fake();
|
||||||
|
let hash: String = en::Password(10..22).fake();
|
||||||
|
|
||||||
|
create_account(
|
||||||
|
CreateAccount {
|
||||||
|
email: Email::new(email),
|
||||||
|
login: Login::new(login),
|
||||||
|
pass_hash: PassHash::new(hash),
|
||||||
|
role: Role::Admin,
|
||||||
|
},
|
||||||
|
t,
|
||||||
|
)
|
||||||
|
.await
|
||||||
|
.unwrap()
|
||||||
|
}
|
||||||
|
|
||||||
|
async fn test_order(
|
||||||
|
t: &mut sqlx::Transaction<'_, sqlx::Postgres>,
|
||||||
|
address_id: OrderAddressId,
|
||||||
|
) -> Order {
|
||||||
|
let buyer_id = test_account(t).await.id;
|
||||||
|
crate::create_order(
|
||||||
|
CreateOrder {
|
||||||
|
buyer_id,
|
||||||
|
items: vec![],
|
||||||
|
shopping_cart_id: None,
|
||||||
|
checkout_notes: None,
|
||||||
|
delivery_address_id: address_id,
|
||||||
|
},
|
||||||
|
t,
|
||||||
|
)
|
||||||
|
.await
|
||||||
|
.unwrap()
|
||||||
|
}
|
||||||
|
|
||||||
async fn test_order_address(
|
async fn test_order_address(
|
||||||
t: &mut sqlx::Transaction<'_, sqlx::Postgres>,
|
t: &mut sqlx::Transaction<'_, sqlx::Postgres>,
|
||||||
) -> model::OrderAddress {
|
) -> model::OrderAddress {
|
||||||
@ -230,11 +272,31 @@ mod tests {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[actix::test]
|
||||||
async fn order_address() {
|
async fn order_address() {
|
||||||
testx::db_t_ref!(t);
|
testx::db_t_ref!(t);
|
||||||
|
|
||||||
test_order_address(&mut t).await;
|
{
|
||||||
|
let _address = test_order_address(&mut t).await;
|
||||||
|
let _order = test_order(&mut t, _address.id).await;
|
||||||
|
}
|
||||||
|
|
||||||
|
let (original, order) = {
|
||||||
|
let address = test_order_address(&mut t).await;
|
||||||
|
let order = test_order(&mut t, address.id).await;
|
||||||
|
(address, order)
|
||||||
|
};
|
||||||
|
|
||||||
|
{
|
||||||
|
let _address = test_order_address(&mut t).await;
|
||||||
|
let _order = test_order(&mut t, _address.id).await;
|
||||||
|
}
|
||||||
|
|
||||||
|
let loaded = super::order_address(super::OrderAddress { order_id: order.id }, &mut t)
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
testx::db_rollback!(t);
|
testx::db_rollback!(t);
|
||||||
|
assert_eq!(original, loaded);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -496,6 +496,11 @@ mod tests {
|
|||||||
quantity: Default::default(),
|
quantity: Default::default(),
|
||||||
quantity_unit: QuantityUnit::Gram,
|
quantity_unit: QuantityUnit::Gram,
|
||||||
},
|
},
|
||||||
|
create_order::OrderItem {
|
||||||
|
product_id: test_product(&mut t).await.id,
|
||||||
|
quantity: Default::default(),
|
||||||
|
quantity_unit: QuantityUnit::Gram,
|
||||||
|
},
|
||||||
],
|
],
|
||||||
shopping_cart_id: None,
|
shopping_cart_id: None,
|
||||||
checkout_notes: None,
|
checkout_notes: None,
|
||||||
|
Loading…
Reference in New Issue
Block a user