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); }); });