Files
managing-apps/src/Managing.Web3Proxy/test/plugins/get-claimable-ui-fees.test.ts
2025-06-10 13:22:09 +07:00

47 lines
2.1 KiB
TypeScript

import {test} from 'node:test';
import assert from 'node:assert';
import {getClaimableUiFeesImpl, getClientForAddress} from '../../src/plugins/custom/gmx.js';
test('GMX Get Claimable UI Fees', async (t) => {
const testAccount = '0xbBA4eaA534cbD0EcAed5E2fD6036Aec2E7eE309f';
await t.test('should get claimable UI fees for valid account', async () => {
try {
const sdk = await getClientForAddress(testAccount);
const result = await getClaimableUiFeesImpl(sdk);
// Log total claimable amounts
let totalFees = 0;
let marketsWithFees = 0;
Object.entries(result).forEach(([marketAddress, marketData]) => {
const amount = marketData.claimableUiFeeAmount;
totalFees += amount;
if (amount > 0) {
marketsWithFees++;
console.log(`Market ${marketAddress}:`);
console.log(` Claimable UI fee amount: ${amount}`);
}
});
console.log(`\nSummary for account ${testAccount}:`);
console.log(`Total UI fees claimable: ${totalFees}`);
console.log(`Markets with claimable fees: ${marketsWithFees}`);
console.log(`Total markets checked: ${Object.keys(result).length}`);
assert.ok(typeof result === 'object', 'Result should be an object');
// Check that each market entry has the expected structure
Object.values(result).forEach(marketData => {
assert.ok(typeof marketData.claimableUiFeeAmount === 'number', 'UI fee amount should be a number');
assert.ok(marketData.claimableUiFeeAmount >= 0, 'UI fee amount should be non-negative');
});
} catch (error) {
console.warn('Expected error in test environment:', error.message);
// In test environment, this may fail due to network issues or missing data
assert.ok(error instanceof Error, 'Should throw an Error instance');
}
});
});