Files
xo-stack/packages/stack/tests/bcmr/bcmr-composite.test.ts
T
2025-10-16 06:23:59 +00:00

49 lines
1.5 KiB
TypeScript

import { test, expect, describe } from 'vitest';
import { BCMRComposite } from '../../src/bcmr/bcmr-composite.js';
import { BCMRHttp } from '../../src/index.js';
// musd-v1
const categoryId =
'b38a33f750f84c5c169a6f23cb873e6e79605021585d4f3408789689ed87f366';
const musdTokenField = {
x: 'https://x.com/MoriaMoney/',
web: 'https://moria.money',
icon: 'https://meta.moria.money/m1.png',
telegram: 'https://t.me/moriamoney',
};
describe('BCMRComposite', () => {
const bcmrComposite = new BCMRComposite([
new BCMRHttp({ indexerUri: 'https://bcmr.paytaca.com/api/tokens/' }),
new BCMRHttp({
indexerUri: 'https://bcmr.flowee.cash/',
endpointEndsWithDotJson: true,
}),
]);
test('should return token metadata', async () => {
const metadata = await bcmrComposite.getTokenData(categoryId);
expect(metadata).toBeDefined();
expect(metadata?.token.symbol).toBeDefined();
expect(metadata?.token.symbol).toBe('MUSD');
});
test('metadata should have a uris field that matches', async () => {
const matches = await bcmrComposite.searchField(categoryId, 'uris');
expect(Array.isArray(matches)).toBeTruthy();
expect((matches as Array<unknown>).length).toBeGreaterThan(0);
expect((matches as Array<unknown>)[0]).toMatchObject(musdTokenField);
});
test('should fail if cantegoryId is not a registered entry', async () => {
const invalidCategoryId = 'asd123';
await expect(
bcmrComposite.getTokenData(invalidCategoryId),
).rejects.toThrow();
});
});