UNPKG

trade360-nodejs-sdk

Version:

LSports Trade360 SDK for Node.js

58 lines 3.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const class_transformer_1 = require("class-transformer"); const livescore_1 = require("../../../../src/entities/core-entities/livescore/livescore"); const scoreboard_1 = require("../../../../src/entities/core-entities/livescore/scoreboard"); const period_1 = require("../../../../src/entities/core-entities/livescore/period"); const statistic_1 = require("../../../../src/entities/core-entities/livescore/statistic"); const player_statistic_1 = require("../../../../src/entities/core-entities/livescore/player-statistic"); const name_value_record_1 = require("../../../../src/entities/core-entities/common/name-value-record"); const current_incident_1 = require("../../../../src/entities/core-entities/livescore/current-incident"); const danger_indicator_1 = require("../../../../src/entities/core-entities/livescore/danger-indicator"); describe('Livescore Entity', () => { it('should deserialize a plain object into a Livescore instance', () => { const plain = { Scoreboard: { id: 1 }, Periods: [{ id: 2 }, { id: 3 }], Statistics: [{ id: 4 }, { id: 5 }], LivescoreExtraData: [{ name: 'foo', value: 'bar' }], CurrentIncident: { id: 6 }, DangerTriggers: [{ id: 7 }], PlayerStatistics: [{ id: 8 }], }; const livescore = (0, class_transformer_1.plainToInstance)(livescore_1.Livescore, plain, { excludeExtraneousValues: true }); expect(livescore).toBeInstanceOf(livescore_1.Livescore); expect(livescore.scoreboard).toBeInstanceOf(scoreboard_1.Scoreboard); expect(Array.isArray(livescore.periods)).toBe(true); expect(livescore.periods?.[0]).toBeInstanceOf(period_1.Period); expect(Array.isArray(livescore.statistics)).toBe(true); expect(livescore.statistics?.[0]).toBeInstanceOf(statistic_1.Statistic); expect(Array.isArray(livescore.playerStatistics)).toBe(true); expect(livescore.playerStatistics?.[0]).toBeInstanceOf(player_statistic_1.PlayerStatistic); expect(Array.isArray(livescore.livescoreExtraData)).toBe(true); expect(livescore.livescoreExtraData?.[0]).toBeInstanceOf(name_value_record_1.NameValueRecord); expect(livescore.currentIncident).toBeInstanceOf(current_incident_1.CurrentIncident); expect(Array.isArray(livescore.dangerTriggers)).toBe(true); expect(livescore.dangerTriggers?.[0]).toBeInstanceOf(danger_indicator_1.DangerIndicator); }); it('should handle missing properties', () => { const plain = {}; const livescore = (0, class_transformer_1.plainToInstance)(livescore_1.Livescore, plain, { excludeExtraneousValues: true }); expect(livescore.scoreboard).toBeUndefined(); expect(livescore.periods).toBeUndefined(); expect(livescore.statistics).toBeUndefined(); expect(livescore.playerStatistics).toBeUndefined(); expect(livescore.livescoreExtraData).toBeUndefined(); expect(livescore.currentIncident).toBeUndefined(); expect(livescore.dangerTriggers).toBeUndefined(); }); it('should ignore extraneous properties', () => { const plain = { Scoreboard: { id: 1 }, Extra: 'ignore me', }; const livescore = (0, class_transformer_1.plainToInstance)(livescore_1.Livescore, plain, { excludeExtraneousValues: true }); expect(livescore.Extra).toBeUndefined(); }); }); //# sourceMappingURL=livescore.spec.js.map