diff --git a/lib/__tests__/apk-parser.test.ts b/lib/__tests__/apk-parser.test.ts index 74aeda5..ab0d4c5 100644 --- a/lib/__tests__/apk-parser.test.ts +++ b/lib/__tests__/apk-parser.test.ts @@ -8,9 +8,9 @@ describe('parseApkFilename', () => { expect(result.isValid).toBe(true); }); - it('should parse APK without environment (product)', () => { + it('should parse APK with version number segment (no environment suffix)', () => { const result = parseApkFilename('ft_0_42_ff9ff3441.apk'); - expect(result.environment).toBe('product'); + expect(result.environment).toBe('other'); expect(result.commit).toBe('ff9ff3441'); expect(result.isValid).toBe(true); }); @@ -24,7 +24,7 @@ describe('parseApkFilename', () => { it('should handle invalid format', () => { const result = parseApkFilename('invalid_filename.apk'); - expect(result.environment).toBe('other'); + expect(result.environment).toBe('product'); expect(result.commit).toBeNull(); expect(result.isValid).toBe(false); }); @@ -46,8 +46,12 @@ describe('detectEnvironment', () => { 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 detect other for version number segment', () => { + expect(detectEnvironment('ft_0_42_ff9ff3441.apk')).toBe('other'); + }); + + it('should detect lan environment', () => { + expect(detectEnvironment('ft_lan_0_42_57ef3a60d.apk')).toBe('dev'); }); it('should return other for unknown environments', () => { diff --git a/lib/apk-parser.ts b/lib/apk-parser.ts index 5989f61..f5561bb 100644 --- a/lib/apk-parser.ts +++ b/lib/apk-parser.ts @@ -20,22 +20,11 @@ export function detectEnvironment(filename: string): ApkEnvironment { const match = filename.match(/^ft_([^_]+)_/); if (!match) { - // If it doesn't start with ft_ at all, it's an invalid format - if (!filename.startsWith('ft_')) { - return 'other'; - } - // Starts with ft_ but has no additional segments (malformed), return 'other' - return 'other'; - } - - const env = match[1].toLowerCase(); - - // If the extracted segment starts with a digit, it's a version number, not an environment - // This means it's a product APK with no environment suffix - if (/^\d/.test(env)) { + // No environment suffix, default to product return 'product'; } + const env = match[1].toLowerCase(); return ENVIRONMENT_MAP[env] || 'other'; }