UNPKG

trade360-nodejs-sdk

Version:

LSports Trade360 SDK for Node.js

51 lines 2.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const class_transformer_1 = require("class-transformer"); const period_1 = require("../../../../src/entities/core-entities/livescore/period"); const result_1 = require("../../../../src/entities/core-entities/livescore/result"); const incident_1 = require("../../../../src/entities/core-entities/livescore/incident"); describe('Period Entity', () => { it('should deserialize a plain object into a Period instance', () => { const plain = { Type: 1, IsFinished: true, IsConfirmed: false, Results: [{ id: 1 }], Incidents: [{ period: 1 }], SubPeriods: [{ Type: 2 }], SequenceNumber: 10, }; const period = (0, class_transformer_1.plainToInstance)(period_1.Period, plain, { excludeExtraneousValues: true }); expect(period).toBeInstanceOf(period_1.Period); expect(period.type).toBe(1); expect(period.isFinished).toBe(true); expect(period.isConfirmed).toBe(false); expect(Array.isArray(period.results)).toBe(true); expect(period.results?.[0]).toBeInstanceOf(result_1.Result); expect(Array.isArray(period.incidents)).toBe(true); expect(period.incidents?.[0]).toBeInstanceOf(incident_1.Incident); expect(Array.isArray(period.subPeriods)).toBe(true); expect(period.subPeriods?.[0]).toBeInstanceOf(period_1.Period); expect(period.sequenceNumber).toBe(10); }); it('should handle missing properties', () => { const plain = {}; const period = (0, class_transformer_1.plainToInstance)(period_1.Period, plain, { excludeExtraneousValues: true }); expect(period.type).toBeUndefined(); expect(period.isFinished).toBeUndefined(); expect(period.isConfirmed).toBeUndefined(); expect(period.results).toBeUndefined(); expect(period.incidents).toBeUndefined(); expect(period.subPeriods).toBeUndefined(); expect(period.sequenceNumber).toBeUndefined(); }); it('should ignore extraneous properties', () => { const plain = { Type: 3, Extra: 'ignore me', }; const period = (0, class_transformer_1.plainToInstance)(period_1.Period, plain, { excludeExtraneousValues: true }); expect(period.Extra).toBeUndefined(); }); }); //# sourceMappingURL=period.spec.js.map