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

39 lines (38 loc) 1.93 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const data_power_curve_1 = require("./data.power-curve"); const data_duration_1 = require("./data.duration"); const data_power_1 = require("./data.power"); describe('DataPowerCurve', () => { it('should hydrate from raw JSON objects', () => { const rawData = [ { duration: 1, power: 100 }, { duration: 5, power: 200 } ]; const powerCurve = new data_power_curve_1.DataPowerCurve(rawData); const values = powerCurve.getValue(); expect(values[0].duration).toBeInstanceOf(data_duration_1.DataDuration); expect(values[0].duration.getValue()).toBe(1); expect(values[0].power).toBeInstanceOf(data_power_1.DataPower); expect(values[0].power.getValue()).toBe(100); expect(values[1].duration).toBeInstanceOf(data_duration_1.DataDuration); expect(values[1].duration.getValue()).toBe(5); expect(values[1].power).toBeInstanceOf(data_power_1.DataPower); expect(values[1].power.getValue()).toBe(200); }); it('should hydrate from already hydrated objects (idempotency)', () => { const hydratedData = [{ duration: new data_duration_1.DataDuration(1), power: new data_power_1.DataPower(100) }]; const powerCurve = new data_power_curve_1.DataPowerCurve(hydratedData); const values = powerCurve.getValue(); expect(values[0].duration).toBeInstanceOf(data_duration_1.DataDuration); expect(values[0].duration.getValue()).toBe(1); }); it('should serialize correctly to JSON', () => { const rawData = [{ duration: 1, power: 100 }]; const powerCurve = new data_power_curve_1.DataPowerCurve(rawData); const json = powerCurve.toJSON(); expect(json).toEqual({ [data_power_curve_1.DataPowerCurve.type]: [{ duration: 1, power: 100 }] }); }); });