UNPKG

trade360-nodejs-sdk

Version:
82 lines 4.69 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const class_transformer_1 = require("class-transformer"); const current_incident_1 = require("../../../../src/entities/core-entities/livescore/current-incident"); const incident_confirmation_1 = require("../../../../src/entities/core-entities/enums/incident-confirmation"); const incident_type_1 = require("../../../../src/entities/core-entities/enums/incident-type"); describe('CurrentIncident Entity', () => { it('should deserialize a plain object into a CurrentIncident instance', () => { const plain = { Id: incident_type_1.IncidentType.Corners, Name: 'Incident1', LastUpdate: '2024-06-01T12:00:00Z', Confirmation: incident_confirmation_1.IncidentConfirmation.Confirmed, }; const incident = (0, class_transformer_1.plainToInstance)(current_incident_1.CurrentIncident, plain, { excludeExtraneousValues: true }); expect(incident).toBeInstanceOf(current_incident_1.CurrentIncident); expect(incident.id).toBe(incident_type_1.IncidentType.Corners); expect(incident.name).toBe('Incident1'); expect(incident.lastUpdate).toBeInstanceOf(Date); expect(incident.lastUpdate?.toISOString()).toBe('2024-06-01T12:00:00.000Z'); expect(incident.confirmation).toBe(incident_confirmation_1.IncidentConfirmation.Confirmed); }); it('should handle missing properties', () => { const plain = {}; const incident = (0, class_transformer_1.plainToInstance)(current_incident_1.CurrentIncident, plain, { excludeExtraneousValues: true }); expect(incident.id).toBeUndefined(); expect(incident.name).toBeUndefined(); expect(incident.lastUpdate).toBeUndefined(); expect(incident.confirmation).toBeUndefined(); }); it('should handle different confirmation enum values', () => { const plainConfirmed = { Id: incident_type_1.IncidentType.ShotsOnTarget, Name: 'Confirmed Incident', Confirmation: incident_confirmation_1.IncidentConfirmation.Confirmed, }; const plainTBD = { Id: incident_type_1.IncidentType.ShotsOffTarget, Name: 'TBD Incident', Confirmation: incident_confirmation_1.IncidentConfirmation.TBD, }; const plainCancelled = { Id: incident_type_1.IncidentType.Attacks, Name: 'Cancelled Incident', Confirmation: incident_confirmation_1.IncidentConfirmation.Cancelled, }; const confirmedIncident = (0, class_transformer_1.plainToInstance)(current_incident_1.CurrentIncident, plainConfirmed, { excludeExtraneousValues: true }); const tbdIncident = (0, class_transformer_1.plainToInstance)(current_incident_1.CurrentIncident, plainTBD, { excludeExtraneousValues: true }); const cancelledIncident = (0, class_transformer_1.plainToInstance)(current_incident_1.CurrentIncident, plainCancelled, { excludeExtraneousValues: true }); expect(confirmedIncident.confirmation).toBe(incident_confirmation_1.IncidentConfirmation.Confirmed); expect(tbdIncident.confirmation).toBe(incident_confirmation_1.IncidentConfirmation.TBD); expect(cancelledIncident.confirmation).toBe(incident_confirmation_1.IncidentConfirmation.Cancelled); }); it('should ignore extraneous properties', () => { const plain = { Id: incident_type_1.IncidentType.Goal, Name: 'Test Incident', Extra: 'ignore me', }; const incident = (0, class_transformer_1.plainToInstance)(current_incident_1.CurrentIncident, plain, { excludeExtraneousValues: true }); expect(incident.Extra).toBeUndefined(); }); it('should handle IncidentType enum values correctly', () => { const testCases = [ { type: incident_type_1.IncidentType.NotSet, value: 0 }, { type: incident_type_1.IncidentType.Corners, value: 1 }, { type: incident_type_1.IncidentType.Goal, value: 9 }, { type: incident_type_1.IncidentType.YellowCard, value: 6 }, { type: incident_type_1.IncidentType.RedCard, value: 7 }, ]; testCases.forEach(({ type, value }) => { const plain = { Id: value, Name: 'Test', }; const incident = (0, class_transformer_1.plainToInstance)(current_incident_1.CurrentIncident, plain, { excludeExtraneousValues: true }); expect(incident.id).toBe(type); expect(incident.id).toBe(value); }); }); }); //# sourceMappingURL=current-incident.spec.js.map