UNPKG

@sports-alliance/sports-lib

Version:

A Library to for importing / exporting and processing GPX, TCX, FIT and JSON files from services such as Strava, Movescount, Garmin, Polar etc

41 lines (40 loc) 2.17 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const garmin_profile_mapper_1 = require("./garmin-profile.mapper"); describe('GarminProfileMapper', () => { describe('getDeviceName', () => { it('should preserve MTB acronym for Garmin Edge MTB', () => { // Product ID 4655 is edge_mtb in @garmin/fitsdk profile.js expect(garmin_profile_mapper_1.GarminProfileMapper.getDeviceName(4655)).toBe('Edge MTB'); }); }); describe('getSportName', () => { it('should translate sport ID', () => { // Assuming ID 1 is Running expect(garmin_profile_mapper_1.GarminProfileMapper.getSportName(1)).toBe('running'); }); it('should return null for unknown sport', () => { expect(garmin_profile_mapper_1.GarminProfileMapper.getSportName(99999)).toBeNull(); }); it('should return names in snake_case (regression check for extraction logic)', () => { // Checking ID 4 which is 'fitness_equipment' (was 'fitnessEquipment' in raw SDK) expect(garmin_profile_mapper_1.GarminProfileMapper.getSportName(4)).toBe('fitness_equipment'); }); }); describe('getSubSportName', () => { it('should translate sub sport ID', () => { // Assuming ID 1 is Treadmill expect(garmin_profile_mapper_1.GarminProfileMapper.getSubSportName(1)).toBe('treadmill'); }); it('should return names in snake_case (regression check for extraction logic)', () => { // Checking ID 6 which is 'indoor_cycling' (was 'indoorCycling' in raw SDK) expect(garmin_profile_mapper_1.GarminProfileMapper.getSubSportName(6)).toBe('indoor_cycling'); }); it('should correctly map Enduro and Downhill MTB (IDs 153/154)', () => { // ID 153 = mountain_enduro expect(garmin_profile_mapper_1.GarminProfileMapper.getSubSportName(153)).toBe('mountain_enduro'); // ID 154 = mountain_downhill expect(garmin_profile_mapper_1.GarminProfileMapper.getSubSportName(154)).toBe('mountain_downhill'); }); }); });