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

82 lines (81 loc) 3.41 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const data_cadence_1 = require("../data/data.cadence"); const data_distance_1 = require("../data/data.distance"); const data_duration_1 = require("../data/data.duration"); const data_energy_1 = require("../data/data.energy"); const data_heart_rate_1 = require("../data/data.heart-rate"); const data_speed_1 = require("../data/data.speed"); const swim_length_1 = require("./swim-length"); describe('SwimLength', () => { it('hydrates nullable measured fields defensively from partial JSON rows', () => { const swimLength = swim_length_1.SwimLength.fromJSON({ index: 1, startDate: 1778945229000, endDate: 1778945254000, type: 'active' }); expect(swimLength.lapIndex).toBeNull(); expect(swimLength.stroke).toBeNull(); expect(swimLength.strokes).toBeNull(); expect(swimLength.elapsedTime).toBeNull(); expect(swimLength.timerTime).toBeNull(); expect(swimLength.distance).toBeNull(); expect(swimLength.poolLength).toBeNull(); expect(swimLength.avgSpeed).toBeNull(); expect(swimLength.avgCadence).toBeNull(); expect(swimLength.avgHeartRate).toBeNull(); expect(swimLength.maxHeartRate).toBeNull(); expect(swimLength.swolf).toBeNull(); expect(swimLength.calories).toBeNull(); expect(swimLength.toJSON()).toEqual(expect.objectContaining({ lapIndex: null, stroke: null, strokes: null, elapsedTime: null, timerTime: null, distance: null, poolLength: null, avgSpeed: null, avgCadence: null, avgHeartRate: null, maxHeartRate: null, swolf: null, calories: null })); }); it('hydrates numeric measured fields as sports-lib data objects', () => { const swimLength = swim_length_1.SwimLength.fromJSON({ index: 1, lapIndex: 1, startDate: 1778945229000, endDate: 1778945254000, type: 'active', stroke: 'freestyle', strokes: 8, elapsedTime: 25, timerTime: 24, distance: 25, poolLength: 25, avgSpeed: 1, avgCadence: 20, avgHeartRate: 140, maxHeartRate: 150, swolf: 39, calories: 4 }); expect(swimLength.elapsedTime).toBeInstanceOf(data_duration_1.DataDuration); expect(swimLength.timerTime).toBeInstanceOf(data_duration_1.DataDuration); expect(swimLength.distance).toBeInstanceOf(data_distance_1.DataDistance); expect(swimLength.poolLength).toBeInstanceOf(data_distance_1.DataDistance); expect(swimLength.avgSpeed).toBeInstanceOf(data_speed_1.DataSpeed); expect(swimLength.avgCadence).toBeInstanceOf(data_cadence_1.DataCadence); expect(swimLength.avgHeartRate).toBeInstanceOf(data_heart_rate_1.DataHeartRate); expect(swimLength.maxHeartRate).toBeInstanceOf(data_heart_rate_1.DataHeartRate); expect(swimLength.calories).toBeInstanceOf(data_energy_1.DataEnergy); expect(swimLength.toJSON()).toEqual(expect.objectContaining({ elapsedTime: 25, distance: 25 })); }); });