trade360-nodejs-sdk
Version:
LSports Trade360 SDK for Node.js
58 lines • 3.56 kB
JavaScript
;
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