BlueWallet/tests/integration/Currency.test.js

72 lines
2.4 KiB
JavaScript
Raw Normal View History

2024-11-19 23:16:22 -04:00
import DefaultPreference from 'react-native-default-preference';
2024-05-20 10:54:13 +01:00
import assert from 'assert';
2024-01-28 11:11:08 -04:00
import {
EXCHANGE_RATES_STORAGE_KEY,
getPreferredCurrency,
initCurrencyDaemon,
2024-05-20 10:54:13 +01:00
LAST_UPDATED,
PREFERRED_CURRENCY_STORAGE_KEY,
2024-01-28 11:11:08 -04:00
setPreferredCurrency,
2024-11-19 23:16:22 -04:00
GROUP_IO_BLUEWALLET,
2024-01-28 11:11:08 -04:00
} from '../../blue_modules/currency';
2024-05-20 10:54:13 +01:00
import { FiatUnit } from '../../models/fiatUnit';
jest.setTimeout(90 * 1000);
describe('currency', () => {
2024-11-19 23:16:22 -04:00
beforeAll(async () => {
await DefaultPreference.setName(GROUP_IO_BLUEWALLET);
});
afterEach(async () => {
await DefaultPreference.clearAll();
});
it('fetches exchange rate and saves to DefaultPreference', async () => {
2024-01-28 11:11:08 -04:00
await initCurrencyDaemon();
2024-11-19 23:16:22 -04:00
let curString = await DefaultPreference.get(EXCHANGE_RATES_STORAGE_KEY);
let cur = JSON.parse(curString || '{}');
2024-01-28 11:11:08 -04:00
assert.ok(Number.isInteger(cur[LAST_UPDATED]));
assert.ok(cur[LAST_UPDATED] > 0);
assert.ok(cur.BTC_USD > 0);
// now, setting other currency as default
2024-11-19 23:16:22 -04:00
await DefaultPreference.set(PREFERRED_CURRENCY_STORAGE_KEY, JSON.stringify(FiatUnit.JPY));
2024-01-28 11:11:08 -04:00
await initCurrencyDaemon(true);
2024-11-19 23:16:22 -04:00
curString = await DefaultPreference.get(EXCHANGE_RATES_STORAGE_KEY);
cur = JSON.parse(curString || '{}');
assert.ok(cur.BTC_JPY > 0);
// now setting with a proper setter
2024-01-28 11:11:08 -04:00
await setPreferredCurrency(FiatUnit.EUR);
await initCurrencyDaemon(true);
const preferred = await getPreferredCurrency();
assert.strictEqual(preferred.endPointKey, 'EUR');
2024-11-19 23:16:22 -04:00
curString = await DefaultPreference.get(EXCHANGE_RATES_STORAGE_KEY);
cur = JSON.parse(curString || '{}');
assert.ok(cur.BTC_EUR > 0);
// test Yadio rate source
2024-01-28 11:11:08 -04:00
await setPreferredCurrency(FiatUnit.ARS);
await initCurrencyDaemon(true);
2024-11-19 23:16:22 -04:00
curString = await DefaultPreference.get(EXCHANGE_RATES_STORAGE_KEY);
cur = JSON.parse(curString || '{}');
assert.ok(cur.BTC_ARS > 0);
2022-09-24 16:36:06 -04:00
// test YadioConvert rate source
2024-01-28 11:11:08 -04:00
await setPreferredCurrency(FiatUnit.LBP);
await initCurrencyDaemon(true);
2024-11-19 23:16:22 -04:00
curString = await DefaultPreference.get(EXCHANGE_RATES_STORAGE_KEY);
cur = JSON.parse(curString || '{}');
2022-09-24 16:36:06 -04:00
assert.ok(cur.BTC_LBP > 0);
2021-07-06 16:07:47 +03:00
// test Exir rate source
2024-01-28 11:11:08 -04:00
await setPreferredCurrency(FiatUnit.IRT);
await initCurrencyDaemon(true);
2024-11-19 23:16:22 -04:00
curString = await DefaultPreference.get(EXCHANGE_RATES_STORAGE_KEY);
cur = JSON.parse(curString || '{}');
2021-09-21 18:18:46 +04:30
assert.ok(cur.BTC_IRT > 0);
});
});