import * as DepositAddress from './DepositAddress.js' describe('generateId', () => { test('generates a lexically time-ordered route deposit address id', () => { const earlier = DepositAddress.generateId(new Date('2026-01-01T00:00:00.000Z')) const later = DepositAddress.generateId(new Date('2026-01-01T00:00:01.000Z')) expect(earlier).toMatch(/^rda_\d{15}_[A-Za-z0-9]{24}$/) expect(earlier < later).toBe(true) }) }) describe('canTransition', () => { test('allows recovery or terminal deactivation', () => { expect(DepositAddress.canTransition('active', 'action-required')).toBe(true) expect(DepositAddress.canTransition('action-required', 'active')).toBe(true) expect(DepositAddress.canTransition('active', 'deactivated')).toBe(true) expect(DepositAddress.canTransition('deactivated', 'active')).toBe(false) expect(DepositAddress.canTransition('active', 'active')).toBe(false) }) }) describe('isTerminal', () => { test('only deactivated addresses are terminal', () => { expect(DepositAddress.statuses.filter(DepositAddress.isTerminal)).toEqual(['deactivated']) }) })