Remove unused fetchLiveVaultBalance and its test
This commit is contained in:
@@ -1,83 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Test for fetchLiveVaultBalance() — the live vault balance helper.
|
||||
*
|
||||
* Uses a swappable test hook so we don't make real API calls.
|
||||
*
|
||||
* Run: php tests/live_balance_test.php
|
||||
* Exit code 0 = pass.
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
if (!defined('USER_KEYS')) {
|
||||
define('USER_KEYS', [
|
||||
'zarathos' => 'test-key-not-used',
|
||||
'symos' => 'test-key-not-used',
|
||||
]);
|
||||
}
|
||||
|
||||
require_once __DIR__ . '/../includes/exceptions.php';
|
||||
require_once __DIR__ . '/../includes/utilities.php';
|
||||
|
||||
function fail(string $message): void {
|
||||
fwrite(STDERR, "FAIL: $message\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
function assertSame($expected, $actual, string $label): void {
|
||||
if ($expected !== $actual) {
|
||||
$exp = var_export($expected, true);
|
||||
$act = var_export($actual, true);
|
||||
fail("$label: expected $exp, got $act");
|
||||
}
|
||||
}
|
||||
|
||||
// Test hook: when set, fetchLiveVaultBalance calls this closure instead of
|
||||
// executeApiCall. The closure receives ($url, $apiKey) and returns the
|
||||
// decoded response array (or throws).
|
||||
$GLOBALS['liveBalanceTestHook'] = null;
|
||||
|
||||
function liveBalanceHook($url, $apiKey) {
|
||||
$hook = $GLOBALS['liveBalanceTestHook'] ?? null;
|
||||
if ($hook === null) {
|
||||
fail('Test hook not set — fetchLiveVaultBalance called executeApiCall');
|
||||
}
|
||||
return $hook($url, $apiKey);
|
||||
}
|
||||
|
||||
// --- Test 1: success path returns the vault amount as int ---
|
||||
$GLOBALS['liveBalanceTestHook'] = function ($url, $apiKey) {
|
||||
assertSame('zarathos', $apiKey === 'test-key-not-used' ? 'zarathos' : 'symos', 'api key routed');
|
||||
// (just verify the hook got called)
|
||||
return ['money' => ['vault' => 160627669, 'wallet' => 4000]];
|
||||
};
|
||||
$balance = fetchLiveVaultBalance('zarathos');
|
||||
assertSame(160627669, $balance, 'success returns vault amount');
|
||||
|
||||
// --- Test 2: failure path returns null ---
|
||||
$GLOBALS['liveBalanceTestHook'] = function () {
|
||||
throw new CurlErrorException('connection refused');
|
||||
};
|
||||
$balance = fetchLiveVaultBalance('zarathos');
|
||||
assertSame(null, $balance, 'failure returns null');
|
||||
|
||||
// --- Test 3: missing money.vault returns null ---
|
||||
$GLOBALS['liveBalanceTestHook'] = function () {
|
||||
return ['error' => ['code' => 4]];
|
||||
};
|
||||
$balance = fetchLiveVaultBalance('zarathos');
|
||||
assertSame(null, $balance, 'missing field returns null');
|
||||
|
||||
// --- Test 4: cache: second call does not invoke the hook twice ---
|
||||
$invocations = 0;
|
||||
$GLOBALS['liveBalanceTestHook'] = function () use (&$invocations) {
|
||||
$invocations++;
|
||||
return ['money' => ['vault' => 100]];
|
||||
};
|
||||
fetchLiveVaultBalance('symos');
|
||||
fetchLiveVaultBalance('symos');
|
||||
fetchLiveVaultBalance('symos');
|
||||
assertSame(1, $invocations, 'cache prevents repeated fetches');
|
||||
|
||||
echo "OK: fetchLiveVaultBalance tests passed.\n";
|
||||
Reference in New Issue
Block a user