@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
JavaScript
;
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');
});
});
});