moex-vibe/apps/backend/src/modules/tbank/tbank.config.spec.ts

45 lines
1.5 KiB
TypeScript

import configuration from '../../config/configuration';
describe('T-Bank configuration', () => {
const originalEnv = process.env;
beforeEach(() => {
process.env = { ...originalEnv };
});
afterAll(() => {
process.env = originalEnv;
});
it('uses conservative defaults for T-Bank integration', () => {
delete process.env.T_BANK_BASE_URL;
delete process.env.T_BANK_RATE_LIMIT_PER_SECOND;
delete process.env.CACHE_TBANK_PORTFOLIO_TTL;
const config = configuration();
expect(config.tbank.baseUrl).toBe('invest-public-api.tbank.ru:443');
expect(config.tbank.rateLimitPerSecond).toBe(5);
expect(config.cache.tbankPortfolioTtl).toBe(60);
expect(config.cache.tbankPositionsTtl).toBe(60);
});
it('reads T-Bank token and TTL overrides from environment', () => {
process.env.T_BANK_TOKEN = 'secret-token';
process.env.T_BANK_BASE_URL = 'sandbox-invest-public-api.tbank.ru:443';
process.env.T_BANK_CA_CERT_PATH = '/tmp/tbank-root-ca.pem';
process.env.T_BANK_RATE_LIMIT_PER_SECOND = '2';
process.env.CACHE_TBANK_ACCOUNTS_TTL = '120';
process.env.CACHE_TBANK_POSITIONS_TTL = '45';
const config = configuration();
expect(config.tbank.token).toBe('secret-token');
expect(config.tbank.baseUrl).toBe('sandbox-invest-public-api.tbank.ru:443');
expect(config.tbank.caCertPath).toBe('/tmp/tbank-root-ca.pem');
expect(config.tbank.rateLimitPerSecond).toBe(2);
expect(config.cache.tbankAccountsTtl).toBe(120);
expect(config.cache.tbankPositionsTtl).toBe(45);
});
});