Fortune_Tester/fortune_tests.ps1
2026-04-06 13:57:08 +03:00

383 lines
7.9 KiB
PowerShell

# CryptoPay Tests
function TestCryptoPayDeposit {
$request = @{
amount=200
currency="ETB"
crypto_currency="USDT"
}
fortune call POST "cryptopay/deposit" -Body $request -Tenant
}
function TestCryptoPayWithdraw {
param(
[string]$address
)
$request = @{
address=$address
amount=200
currency="ETB"
crypto_currency="USDT"
}
fortune call POST "cryptopay/withdrawal" -Body $request -Tenant
}
# Chapa Tests
function TestChapaDeposit {
$request = @{
amount=200
}
fortune call POST "chapa/payments/deposit" -Body $request
}
function TestChapaBanks {
fortune call GET "chapa/banks"
}
function TestChapaWithdraw {
$request = @{
account_name="Samuel Tariku"
account_number="0946685511"
amount="200"
reference="1"
bank_code=128 #CBEBirr
}
fortune call POST "chapa/payments/withdraw" -Body $request
}
# Arifpay Tests
function TestArifPayDeposit {
$request = @{
amount=200
customerEmail="samueltarikufantaye@gmail.com"
customerPhone="0946685511"
}
fortune call POST "arifpay/checkout" -Body $request
}
# function TestARIFCheckout {
# $request = @{
# cancelUrl="https://example1.com"
# phone="251922655097"
# email="Ex@gmail.net"
# nonce="251assaddsasad93554asdasd8208sawas"
# errorUrl="http://error.com"
# notifyUrl="https://664db983ede9a2b5565497ee.mockapi.io/user"
# successUrl="http://example.com"
# paymentMethods=
# expireDate=
# items=
# beneficiaries=
# lang=
#
# }
# }
#
# Testing Direct Deposit
#
function CreateDirectDeposit {
$deposit = @{
bank_name="cbe"
sender_account_number="123456789"
sender_account_holder="Samuel Tariku"
receiver_account_number="123456789"
receiver_account_holder="Fortune Admin"
amount=1000.0
reference_number="123456"
}
fortune call POST "direct-deposits" -Tenant -Body $deposit
}
function GetAllDirectDeposits {
fortune call GET "direct-deposits?status=PENDING" | less
}
function ApproveDirectDeposit {
param(
[Int64]$id
)
fortune call POST "direct-deposits/$id/approve" | less
}
function RejectDirectDeposit {
param(
[Int64]$id
)
$reject = @{
reason="Incorrect account number"
}
fortune call POST "direct-deposits/$id/reject" -Body $reject | less
}
#
# Testing Super Admin Bank
#
function CreateBank {
$bank = @{
swift="CBETTA"
name="Commerical Bank Of Ethiopia"
acct_length=10
country_code="et"
}
fortune call POST "bank" -Body $bank
}
function GetAllBanks {
fortune call GET "bank" | less
}
function GetBankByID {
param(
[Int64]$id
)
fortune call GET "banks/$id" | less
}
function DeleteBank {
param(
[Int64]$id
)
fortune call DELETE "banks/$id" | less
}
#
#Testing Direct Deposit Bank
#
function CreateDDBank {
param(
[Int64]$id
)
$bank = @{
company_id=1
bank_id=$id
interval=1
is_cycle=$true
}
fortune call POST "direct-deposit-bank" -Body $bank
}
function GetAllDDBanks {
fortune call GET "direct-deposit-bank" | less
}
function GetDDBankByID {
param(
[Int64]$id
)
fortune call GET "direct-deposit-bank/$id" | less
}
function ManuallyCycleBank {
param(
[Int64]$id
)
fortune call POST "direct-deposit-bank/$id/cycle" | less
}
function DeleteDDBank {
param(
[Int64]$id
)
fortune call DELETE "direct-deposit-bank/$id" | less
}
# Testing Direct Deposit Account
#
function CreateDDAccount {
param(
[Int64]$id
)
$account = @{
dd_bank_id=$id
account_number="1234567"
account_holder="Fortune Admin"
}
fortune call POST "direct-deposit-account" -Body $account
}
function GetDDAccountForBank {
param(
[Int64]$id
)
fortune call GET "direct-deposit-bank/$id/accounts" | less
}
function GetVirtualGameProviders {
fortune call GET "virtual-game/orchestrator/providers"
}
function GetVirtualGameList {
fortune call GET "virtual-game/orchestrator/games?providerID=veliplay"
}
function StartVeliGameDemo {
param(
[Int64]$gameID,
[string]$providerID
)
$gameData = @{
providerId=$providerID
gameId=$gameID
language="en"
deviceType= "DESKTOP"
brandId="fortune_bets"
}
fortune call POST "veli/start-demo-game" -Body $gameData
}
function GetLeagues {
fortune call GET "leagues" -Tenant
}
function GetEvents {
fortune call GET "upcoming-events" -Tenant
}
function GetOdds {
param(
[Int64]$eventID
)
fortune call GET "odds/upcoming/${eventID}" -Tenant
}
function GetOdds {
param(
[Int64]$eventID
)
fortune call GET "odds/upcoming/${eventID}" -Tenant
}
function Select-Event {
param ($Events)
$selection = $Events |
ForEach-Object {
"$($_.id),$($_.match_name),$($_.league_name),$($_.start_time)"
} |
fzf --delimiter=',' --with-nth=2,3,4
if ($selection) {
$selectedId = ($selection -split ",")[0]
return $Events | Where-Object { $_.id -eq [int]$selectedId }
}
}
# @{id=29169722; event_id=1732385; market_type=winning_margin; market_name=Winning Margin; market_category=others; market_id=56; number_of_outcomes=10; raw_odds=System.Object[]; fetched_at=12/9/2025 04:15:38; expires_at=12/9/2025 05:15:38; is_active=True}
function Select-Odd {
param ($Odds)
$selection = $Odds | ForEach-Object {
"$($_.id),$($_.market_name)"
} | fzf --delimiter=',' --with-nth=2
if ($selection) {
$selectedId = ($selection -split ",")[0]
return $Odds | Where-Object { $_.id -eq [int]$selectedId }
}
}
#@{id=4967715; name=1; odds=1.500} @{id=4967716; name=Draw; odds=4.000} @{id=4967717; name=2; odds=5.500}
#@{id=4967741; odds=1.925; header=1; handicap=-1.0} @{id=4967746; odds=1.875; header=2; handicap=+1.0}
function Select-RawOdd {
param ($Odds)
$selection = $Odds | ForEach-Object {
"$($_.id),$($_.name),$($_.header),$($_.handicap),"
} | fzf --delimiter=',' --with-nth=2,3,4
if ($selection) {
$selectedId = ($selection -split ",")[0]
return $Odds | Where-Object { $_.id -eq [int]$selectedId }
}
}
function EventOddPipe {
$events = GetEvents | ConvertFrom-Json
$selectedEvent = Select-Event $events.data
Write-Host $selectedEvent.id
$odds = GetOdds $selectedEvent.id | ConvertFrom-Json
$selectedOdd = Select-Odd $odds.data
#Write-Host $selectedOdd.raw_odds
$selectedRawOdd = Select-RawOdd $selectedOdd.raw_odds
Write-Host $selectedRawOdd
return @{
selectedEvent=$selectedEvent
selectedOdd=$selectedOdd
selectedRawOdd=$selectedRawOdd
}
}
# Create Bet
function CreateBet {
$eventOdd = EventOddPipe
Write-Host $eventOdd
$req = @{
outcomes = @(
@{
event_id=[int64]$eventOdd.selectedEvent.id
odd_id=[int64]$eventOdd.selectedRawOdd.id
market_id=[int64]$eventOdd.selectedOdd.market_id
}
)
amount=30.0
}
fortune call POST "sport/bet" -Tenant -Body $req
}
# Login Tests
function LoginClient{
fortune login -Email john.doe@example.com -Password password@123
}
function LoginAdmin{
fortune login-admin -Email test.admin@gmail.com -Password NLd3m6taW71H
}
function LoginSuper{
fortune login-super -Email cybersamt@gmail.com -Password H6xW6pe1w8ys
}
# Register Tasks
function Register {
param(
[string]$otp
)
$req = @{
first_name="Samuel"
last_name="Tariku"
phone_number="+251900000002"
password="password@123"
otp=$otp
referral_code=""
}
fortune call POST "user/register" -Tenant $req
}
function SendRegisterOTP {
$req = @{
phone_number="+251900000002"
}
fortune call POST "user/sendRegisterCode" -Tenant $req
}
function Main {
$scriptPath = $PSCommandPath
$functions = Get-ChildItem Function: |
Where-Object {
$_.ScriptBlock.File -eq $scriptPath -and
$_.Name -ne "Main"
} |
Select-Object -ExpandProperty Name |
Sort-Object
$fn = $functions | fzf --prompt="Select action > "
if (-not $fn) {
return
}
$command = Get-Command $fn
$params = @{}
foreach ($p in $command.Parameters.Values) {
$params[$p.Name] = Read-Host "Enter $($p.Name)"
}
& $fn @params
}
Main