- Add missing test case for lan environment detection - Simplify detectEnvironment() to match spec exactly - Remove extra logic (version number detection, ft_ prefix check) - Update test expectations to match simplified implementation behavior - All tests now pass with spec-compliant implementation
61 lines
2.1 KiB
TypeScript
61 lines
2.1 KiB
TypeScript
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 with version number segment (no environment suffix)', () => {
|
|
const result = parseApkFilename('ft_0_42_ff9ff3441.apk');
|
|
expect(result.environment).toBe('other');
|
|
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('product');
|
|
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 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', () => {
|
|
expect(detectEnvironment('ft_unknown_0_42_57ef3a60d.apk')).toBe('other');
|
|
});
|
|
});
|