import { parseApkFilename, detectEnvironment, getApkTabs } from '../apk-parser'; describe('parseApkFilename', () => { it('should parse product APK (no environment)', () => { const result = parseApkFilename('ft_0_44_bfeddf2d0.apk', '0_44'); expect(result.environment).toBe('product'); expect(result.commit).toBe('bfeddf2d0'); expect(result.isValid).toBe(true); }); it('should parse dev APK', () => { const result = parseApkFilename('ft_dev_0_44_bfeddf2d0.apk', '0_44'); expect(result.environment).toBe('dev'); expect(result.commit).toBe('bfeddf2d0'); expect(result.isValid).toBe(true); }); it('should parse sandbox APK', () => { const result = parseApkFilename('ft_sandbox_0_44_bfeddf2d0.apk', '0_44'); expect(result.environment).toBe('sandbox'); expect(result.commit).toBe('bfeddf2d0'); expect(result.isValid).toBe(true); }); it('should map unknown environment to other', () => { const result = parseApkFilename('ft_lan_0_44_bfeddf2d0.apk', '0_44'); expect(result.environment).toBe('other'); expect(result.commit).toBe('bfeddf2d0'); }); it('should map timeshift to other', () => { const result = parseApkFilename('ft_timeshift_0_42_57ef3a60d.apk', '0_42'); expect(result.environment).toBe('other'); }); }); describe('detectEnvironment', () => { it('should detect configured environment', () => { expect(detectEnvironment('ft_dev', ['dev', 'sandbox'])).toEqual({ environment: 'dev', rawEnvironment: 'dev' }); expect(detectEnvironment('ft_sandbox', ['dev', 'sandbox'])).toEqual({ environment: 'sandbox', rawEnvironment: 'sandbox' }); }); it('should return other for unconfigured environment', () => { expect(detectEnvironment('ft_lan', ['dev', 'sandbox'])).toEqual({ environment: 'other', rawEnvironment: 'lan' }); expect(detectEnvironment('ft_timeshift', ['dev', 'sandbox'])).toEqual({ environment: 'other', rawEnvironment: 'timeshift' }); }); });