trade360-nodejs-sdk
Version:
LSports Trade360 SDK for Node.js
73 lines • 3.66 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const class_transformer_1 = require("class-transformer");
const incident_1 = require("../../../../src/entities/core-entities/livescore/incident");
const result_1 = require("../../../../src/entities/core-entities/livescore/result");
const players_1 = require("../../../../src/entities/core-entities/livescore/players");
const player_1 = require("../../../../src/entities/core-entities/livescore/player");
describe('Incident Entity', () => {
it('should deserialize a plain object into an Incident instance', () => {
const plain = {
Period: 1,
IncidentType: 5,
Seconds: 120,
ParticipantPosition: 'Forward',
PlayerId: '123',
PlayerName: 'John Doe',
Results: [{ id: 1 }, { id: 2 }],
};
const incident = (0, class_transformer_1.plainToInstance)(incident_1.Incident, plain, { excludeExtraneousValues: true });
expect(incident).toBeInstanceOf(incident_1.Incident);
expect(incident.period).toBe(1);
expect(incident.incidentType).toBe(5);
expect(incident.seconds).toBe(120);
expect(incident.participantPosition).toBe('Forward');
expect(incident.playerId).toBe('123');
expect(incident.playerName).toBe('John Doe');
expect(Array.isArray(incident.results)).toBe(true);
expect(incident.results?.[0]).toBeInstanceOf(result_1.Result);
});
it('should handle missing properties', () => {
const plain = {};
const incident = (0, class_transformer_1.plainToInstance)(incident_1.Incident, plain, { excludeExtraneousValues: true });
expect(incident.period).toBeUndefined();
expect(incident.incidentType).toBeUndefined();
expect(incident.seconds).toBeUndefined();
expect(incident.participantPosition).toBeUndefined();
expect(incident.playerId).toBeUndefined();
expect(incident.playerName).toBeUndefined();
expect(incident.results).toBeUndefined();
expect(incident.players).toBeUndefined();
});
it('should deserialize players correctly', () => {
const plain = {
Period: 1,
IncidentType: 10,
Seconds: 4320,
Players: {
Item1: [{ Id: 207444, Name: 'Ferran Torres' }],
Item2: [{ Id: 643815, Name: 'Lamine Yamal' }],
},
};
const incident = (0, class_transformer_1.plainToInstance)(incident_1.Incident, plain, { excludeExtraneousValues: true });
expect(incident).toBeInstanceOf(incident_1.Incident);
expect(incident.players).toBeInstanceOf(players_1.Players);
expect(Array.isArray(incident.players?.item1)).toBe(true);
expect(Array.isArray(incident.players?.item2)).toBe(true);
expect(incident.players?.item1?.[0]).toBeInstanceOf(player_1.Player);
expect(incident.players?.item2?.[0]).toBeInstanceOf(player_1.Player);
expect(incident.players?.item1?.[0].id).toBe(207444);
expect(incident.players?.item1?.[0].name).toBe('Ferran Torres');
expect(incident.players?.item2?.[0].id).toBe(643815);
expect(incident.players?.item2?.[0].name).toBe('Lamine Yamal');
});
it('should ignore extraneous properties', () => {
const plain = {
Period: 2,
Extra: 'ignore me',
};
const incident = (0, class_transformer_1.plainToInstance)(incident_1.Incident, plain, { excludeExtraneousValues: true });
expect(incident.Extra).toBeUndefined();
});
});
//# sourceMappingURL=incident.spec.js.map