import { parseApkFilename, detectEnvironment } from '../apk-parser'; describe('parseApkFilename', () => { it('should parse APK with environment suffix', () => { const result = parseApkFilename('ft_timeshift_0_42_57ef3a60d.apk'); expect(result.environment).toBe('dev'); expect(result.commit).toBe('57ef3a60d'); expect(result.isValid).toBe(true); }); it('should parse APK without environment (product)', () => { const result = parseApkFilename('ft_0_42_ff9ff3441.apk'); expect(result.environment).toBe('product'); expect(result.commit).toBe('ff9ff3441'); expect(result.isValid).toBe(true); }); it('should parse sandbox APK', () => { const result = parseApkFilename('ft_sandbox_0_42_57ef3a60d.apk'); expect(result.environment).toBe('sandbox'); expect(result.commit).toBe('57ef3a60d'); expect(result.isValid).toBe(true); }); it('should handle invalid format', () => { const result = parseApkFilename('invalid_filename.apk'); expect(result.environment).toBe('other'); expect(result.commit).toBeNull(); expect(result.isValid).toBe(false); }); it('should handle missing commit ID', () => { const result = parseApkFilename('ft_dev_0_42.apk'); expect(result.environment).toBe('dev'); expect(result.commit).toBeNull(); expect(result.isValid).toBe(false); }); }); describe('detectEnvironment', () => { it('should detect dev environment', () => { expect(detectEnvironment('ft_timeshift_0_42_57ef3a60d.apk')).toBe('dev'); }); it('should detect sandbox environment', () => { expect(detectEnvironment('ft_sandbox_0_42_57ef3a60d.apk')).toBe('sandbox'); }); it('should detect product environment (no suffix)', () => { expect(detectEnvironment('ft_0_42_ff9ff3441.apk')).toBe('product'); }); it('should return other for unknown environments', () => { expect(detectEnvironment('ft_unknown_0_42_57ef3a60d.apk')).toBe('other'); }); });