added test for admin deposit endpoint, fixed bugs
This commit is contained in:
parent
fc9b1dd69e
commit
af45f78ff5
@ -122,7 +122,7 @@ pub async fn user_stripe_deposits_get(
|
|||||||
|
|
||||||
// Filter by user ...
|
// Filter by user ...
|
||||||
let receipts = stripe_increase_balance_receipt::Entity::find()
|
let receipts = stripe_increase_balance_receipt::Entity::find()
|
||||||
.filter(increase_on_chain_balance_receipt::Column::DepositToUserId.eq(Some(user.id)))
|
.filter(stripe_increase_balance_receipt::Column::DepositToUserId.eq(Some(user.id)))
|
||||||
.all(db_replica.as_ref())
|
.all(db_replica.as_ref())
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
@ -165,7 +165,7 @@ pub async fn user_admin_deposits_get(
|
|||||||
|
|
||||||
// Filter by user ...
|
// Filter by user ...
|
||||||
let receipts = admin_increase_balance_receipt::Entity::find()
|
let receipts = admin_increase_balance_receipt::Entity::find()
|
||||||
.filter(increase_on_chain_balance_receipt::Column::DepositToUserId.eq(user.id))
|
.filter(admin_increase_balance_receipt::Column::DepositToUserId.eq(user.id))
|
||||||
.all(db_replica.as_ref())
|
.all(db_replica.as_ref())
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
|
33
web3_proxy/tests/common/get_admin_deposits.rs
Normal file
33
web3_proxy/tests/common/get_admin_deposits.rs
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
use crate::TestApp;
|
||||||
|
use ethers::prelude::{LocalWallet, Signer};
|
||||||
|
use rust_decimal::Decimal;
|
||||||
|
use tracing::info;
|
||||||
|
use web3_proxy::frontend::admin::AdminIncreaseBalancePost;
|
||||||
|
use web3_proxy::frontend::users::authentication::LoginPostResponse;
|
||||||
|
|
||||||
|
/// Helper function to increase the balance of a user, from an admin
|
||||||
|
#[allow(unused)]
|
||||||
|
pub async fn get_admin_deposits(
|
||||||
|
x: &TestApp,
|
||||||
|
r: &reqwest::Client,
|
||||||
|
user: &LoginPostResponse,
|
||||||
|
) -> serde_json::Value {
|
||||||
|
let increase_balance_post_url = format!("{}user/deposits/admin", x.proxy_provider.url());
|
||||||
|
info!("Get admin increase deposits");
|
||||||
|
// Login the user
|
||||||
|
// Use the bearer token of admin to increase user balance
|
||||||
|
let admin_balance_deposits = r
|
||||||
|
.get(increase_balance_post_url)
|
||||||
|
.bearer_auth(user.bearer_token)
|
||||||
|
.send()
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
|
info!(?admin_balance_deposits, "http response");
|
||||||
|
let admin_balance_deposits = admin_balance_deposits
|
||||||
|
.json::<serde_json::Value>()
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
|
info!(?admin_balance_deposits, "json response");
|
||||||
|
|
||||||
|
admin_balance_deposits
|
||||||
|
}
|
@ -2,6 +2,7 @@ pub mod admin_increases_balance;
|
|||||||
pub mod app;
|
pub mod app;
|
||||||
pub mod create_admin;
|
pub mod create_admin;
|
||||||
pub mod create_user;
|
pub mod create_user;
|
||||||
|
pub mod get_admin_deposits;
|
||||||
pub mod get_rpc_key;
|
pub mod get_rpc_key;
|
||||||
pub mod get_user_balance;
|
pub mod get_user_balance;
|
||||||
pub mod referral;
|
pub mod referral;
|
||||||
|
@ -3,6 +3,7 @@ mod common;
|
|||||||
use crate::common::admin_increases_balance::admin_increase_balance;
|
use crate::common::admin_increases_balance::admin_increase_balance;
|
||||||
use crate::common::create_admin::create_user_as_admin;
|
use crate::common::create_admin::create_user_as_admin;
|
||||||
use crate::common::create_user::create_user;
|
use crate::common::create_user::create_user;
|
||||||
|
use crate::common::get_admin_deposits::get_admin_deposits;
|
||||||
use crate::common::get_rpc_key::{user_get_first_rpc_key, RpcKey};
|
use crate::common::get_rpc_key::{user_get_first_rpc_key, RpcKey};
|
||||||
use crate::common::get_user_balance::user_get_balance;
|
use crate::common::get_user_balance::user_get_balance;
|
||||||
use crate::common::referral::{
|
use crate::common::referral::{
|
||||||
@ -87,6 +88,53 @@ async fn test_log_in_and_out() {
|
|||||||
assert_eq!(logout_response, "goodbye");
|
assert_eq!(logout_response, "goodbye");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg_attr(not(feature = "tests-needing-docker"), ignore)]
|
||||||
|
#[test_log::test(tokio::test)]
|
||||||
|
async fn test_admin_balance_increase() {
|
||||||
|
info!("Starting balance decreases with usage test");
|
||||||
|
let x = TestApp::spawn(true).await;
|
||||||
|
let r = reqwest::Client::builder()
|
||||||
|
.timeout(Duration::from_secs(20))
|
||||||
|
.build()
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
let user_wallet = x.wallet(0);
|
||||||
|
let admin_wallet = x.wallet(1);
|
||||||
|
|
||||||
|
// Create three users, one referrer, one admin who bumps both their balances
|
||||||
|
let admin_login_response = create_user_as_admin(&x, &r, &admin_wallet).await;
|
||||||
|
let user_login_response = create_user(&x, &r, &user_wallet, None).await;
|
||||||
|
|
||||||
|
// Bump both user's wallet to $20
|
||||||
|
admin_increase_balance(
|
||||||
|
&x,
|
||||||
|
&r,
|
||||||
|
&admin_login_response,
|
||||||
|
&user_wallet,
|
||||||
|
Decimal::from(20),
|
||||||
|
)
|
||||||
|
.await;
|
||||||
|
|
||||||
|
info!("Getting admin deposits");
|
||||||
|
let response = get_admin_deposits(&x, &r, &user_login_response).await;
|
||||||
|
info!(?response);
|
||||||
|
assert_eq!(
|
||||||
|
Decimal::from_str(
|
||||||
|
response["deposits"].get(0).unwrap()["amount"]
|
||||||
|
.as_str()
|
||||||
|
.unwrap()
|
||||||
|
)
|
||||||
|
.unwrap(),
|
||||||
|
Decimal::from(20)
|
||||||
|
);
|
||||||
|
assert_eq!(
|
||||||
|
response["deposits"].get(0).unwrap()["note"]
|
||||||
|
.as_str()
|
||||||
|
.unwrap(),
|
||||||
|
"Test increasing balance"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
#[cfg_attr(not(feature = "tests-needing-docker"), ignore)]
|
#[cfg_attr(not(feature = "tests-needing-docker"), ignore)]
|
||||||
#[test_log::test(tokio::test)]
|
#[test_log::test(tokio::test)]
|
||||||
async fn test_user_balance_decreases() {
|
async fn test_user_balance_decreases() {
|
||||||
|
Loading…
Reference in New Issue
Block a user