UNPKG

mnb-exchange-rate

Version:

TypeScript client for Hungarian National Bank (MNB) exchange rate API

68 lines 9.83 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const client_1 = require("./client"); const util_1 = require("./util"); function expectCurrenciesCurrList(res) { expect(res.Currencies).toBeDefined(); expect(res.Currencies).toBeDefined(); expect(res.Currencies.length).toBeGreaterThan(0); res.Currencies.forEach((c) => expect(c.length).toEqual(3)); } describe('Client', () => { const now = new Date(); const nowDate = (0, util_1.getDatePart)(now); const nowDate_1 = (0, util_1.getDatePart)((0, util_1.subDateDays)(now, 1)); it('should be defined', async () => { const client = await (0, client_1.getClient)(); expect(client).toBeDefined(); }, 10000); it('should return info', async () => { const client = await (0, client_1.getClient)(); const res = await client.GetInfo(); expect(res).toBeDefined(); expect(res.FirstDate).toMatch(/\d{4}-\d{2}-\d{2}/); expect(res.LastDate).toMatch(/\d{4}-\d{2}-\d{2}/); expectCurrenciesCurrList(res); }, 20000); it('should return currencies', async () => { const client = await (0, client_1.getClient)(); const res = await client.GetCurrencies(); expect(res).toBeDefined(); expectCurrenciesCurrList(res); }, 20000); it('should return currency units', async () => { const client = await (0, client_1.getClient)(); const currencies = ['EUR', 'HUF']; const res = await client.GetCurrencyUnits({ currencies }); currencies.forEach(c => { expect(res[c]).toBeDefined(); }); }, 20000); it('should return stored interval', async () => { const client = await (0, client_1.getClient)(); const res = await client.GetDateInterval(); expect(res).toBeDefined(); expect(res.FirstDate).toBeDefined(); expect(res.LastDate).toBeDefined(); }, 20000); it('should return current rates', async () => { const client = await (0, client_1.getClient)(); const res = await client.GetCurrentExchangeRates(); expect(res).toBeDefined(); }, 20000); it('should return exchange rates', async () => { const client = await (0, client_1.getClient)(); const res = await client.GetExchangeRates({ startDate: nowDate_1, endDate: nowDate, currencies: ['EUR', 'USD'], }); expect(res).toBeDefined(); Object.values(res).forEach(d => { Object.values(d).forEach(n => { expect(n).toBeGreaterThan(0); }); }); }, 20000); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvY2xpZW50LnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxQ0FBbUM7QUFDbkMsaUNBQWdEO0FBRWhELFNBQVMsd0JBQXdCLENBQUMsR0FBUTtJQUN4QyxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JDLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pELEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JFLENBQUM7QUFFRCxRQUFRLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRTtJQUN0QixNQUFNLEdBQUcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3ZCLE1BQU0sT0FBTyxHQUFHLElBQUEsa0JBQVcsRUFBQyxHQUFHLENBQUMsQ0FBQztJQUNqQyxNQUFNLFNBQVMsR0FBRyxJQUFBLGtCQUFXLEVBQUMsSUFBQSxrQkFBVyxFQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25ELEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxLQUFLLElBQUksRUFBRTtRQUNqQyxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUEsa0JBQVMsR0FBRSxDQUFDO1FBQ2pDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMvQixDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDVixFQUFFLENBQUMsb0JBQW9CLEVBQUUsS0FB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O1FBQzFCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzdCLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUMzQixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQy9CLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDWixDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Z2V0Q2xpZW50fSBmcm9tICcuL2NsaWVudCc7XG5pbXBvcnQge2dldERhdGVQYXJ0LCBzdWJEYXRlRGF5c30gZnJvbSAnLi91dGlsJztcblxuZnVuY3Rpb24gZXhwZWN0Q3VycmVuY2llc0N1cnJMaXN0KHJlczogYW55KSB7XG4gIGV4cGVjdChyZXMuQ3VycmVuY2llcykudG9CZURlZmluZWQoKTtcbiAgZXhwZWN0KHJlcy5DdXJyZW5jaWVzKS50b0JlRGVmaW5lZCgpO1xuICBleHBlY3QocmVzLkN1cnJlbmNpZXMubGVuZ3RoKS50b0JlR3JlYXRlclRoYW4oMCk7XG4gIHJlcy5DdXJyZW5jaWVzLmZvckVhY2goKGM6IHN0cmluZykgPT4gZXhwZWN0KGMubGVuZ3RoKS50b0VxdWFsKDMpKTtcbn1cblxuZGVzY3JpYmUoJ0NsaWVudCcsICgpID0+IHtcbiAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgY29uc3Qgbm93RGF0ZSA9IGdldERhdGVQYXJ0KG5vdyk7XG4gIGNvbnN0IG5vd0RhdGVfMSA9IGdldERhdGVQYXJ0KHN1YkRhdGVEYXlzKG5vdywgMSkpO1xuICBpdCgnc2hvdWxkIGJlIGRlZmluZWQnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gYXdhaXQgZ2V0Q2xpZW50KCk7XG4gICAgZXhwZWN0KGNsaWVudCkudG9CZURlZmluZWQoKTtcbiAgfSwgMTAwMDApO1xuICBpdCgnc2hvdWxkIHJldHVybiBpbmZvJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IGF3YWl0IGdldENsaWVudCgpO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IGNsaWVudC5HZXRJbmZvKCk7XG4gICAgZXhwZWN0KHJlcykudG9CZURlZmluZWQoKTtcbiAgICBleHBlY3QocmVzLkZpcnN0RGF0ZSkudG9NYXRjaCgvXFxkezR9LVxcZHsyfS1cXGR7Mn0vKTtcbiAgICBleHBlY3QocmVzLkxhc3REYXRlKS50b01hdGNoKC9cXGR7NH0tXFxkezJ9LVxcZHsyfS8pO1xuICAgIGV4cGVjdEN1cnJlbmNpZXNDdXJyTGlzdChyZXMpO1xuICB9LCAyMDAwMCk7XG4gIGl0KCdzaG91bGQgcmV0dXJuIGN1cnJlbmNpZXMnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gYXdhaXQgZ2V0Q2xpZW50KCk7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgY2xpZW50LkdldEN1cnJlbmNpZXMoKTtcbiAgICBleHBlY3QocmVzKS50b0JlRGVmaW5lZCgpO1xuICAgIGV4cGVjdEN1cnJlbmNpZXNDdXJyTGlzdChyZXMpO1xuICB9LCAyMDAwMCk7XG4gIGl0KCdzaG91bGQgcmV0dXJuIGN1cnJlbmN5IHVuaXRzJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IGF3YWl0IGdldENsaWVudCgpO1xuICAgIGNvbnN0IGN1cnJlbmNpZXMgPSBbJ0VVUicsICdIVUYnXTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCBjbGllbnQuR2V0Q3VycmVuY3lVbml0cyh7Y3VycmVuY2llc30pO1xuICAgIGN1cnJlbmNpZXMuZm9yRWFjaChjID0+IHtcbiAgICAgIGV4cGVjdChyZXNbY10pLnRvQmVEZWZpbmVkKCk7XG4gICAgfSk7XG4gIH0sIDIwMDAwKTtcbiAgaXQoJ3Nob3VsZCByZXR1cm4gc3RvcmVkIGludGVydmFsJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IGF3YWl0IGdldENsaWVudCgpO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IGNsaWVudC5HZXREYXRlSW50ZXJ2YWwoKTtcbiAgICBleHBlY3QocmVzKS50b0JlRGVmaW5lZCgpO1xuICAgIGV4cGVjdChyZXMuRmlyc3REYXRlKS50b0JlRGVmaW5lZCgpO1xuICAgIGV4cGVjdChyZXMuTGFzdERhdGUpLnRvQmVEZWZpbmVkKCk7XG4gIH0sIDIwMDAwKTtcbiAgaXQoJ3Nob3VsZCByZXR1cm4gY3VycmVudCByYXRlcycsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBhd2FpdCBnZXRDbGllbnQoKTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCBjbGllbnQuR2V0Q3VycmVudEV4Y2hhbmdlUmF0ZXMoKTtcbiAgICBleHBlY3QocmVzKS50b0JlRGVmaW5lZCgpO1xuICB9LCAyMDAwMCk7XG4gIGl0KCdzaG91bGQgcmV0dXJuIGV4Y2hhbmdlIHJhdGVzJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IGF3YWl0IGdldENsaWVudCgpO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IGNsaWVudC5HZXRFeGNoYW5nZVJhdGVzKHtcbiAgICAgIHN0YXJ0RGF0ZTogbm93RGF0ZV8xLFxuICAgICAgZW5kRGF0ZTogbm93RGF0ZSxcbiAgICAgIGN1cnJlbmNpZXM6IFsnRVVSJywgJ1VTRCddLFxuICAgIH0pO1xuICAgIGV4cGVjdChyZXMpLnRvQmVEZWZpbmVkKCk7XG4gICAgT2JqZWN0LnZhbHVlcyhyZXMpLmZvckVhY2goZCA9PiB7XG4gICAgICBPYmplY3QudmFsdWVzKGQpLmZvckVhY2gobiA9PiB7XG4gICAgICAgIGV4cGVjdChuKS50b0JlR3JlYXRlclRoYW4oMCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSwgMjAwMDApO1xufSk7XG4iXX0=