UNPKG

trade360-nodejs-sdk

Version:

LSports Trade360 SDK for Node.js

54 lines 2.97 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const class_transformer_1 = require("class-transformer"); const scoreboard_1 = require("../../../../src/entities/core-entities/livescore/scoreboard"); const fixture_status_1 = require("../../../../src/entities/core-entities/enums/fixture-status"); const status_description_1 = require("../../../../src/entities/core-entities/enums/status-description"); const result_1 = require("../../../../src/entities/core-entities/livescore/result"); const clock_1 = require("../../../../src/entities/core-entities/livescore/clock"); const clock_status_1 = require("../../../../src/entities/core-entities/enums/clock-status"); describe('Scoreboard Entity', () => { it('should deserialize a plain object into a Scoreboard instance', () => { const plain = { Status: fixture_status_1.FixtureStatus.InProgress, Description: status_description_1.StatusDescription.HT, CurrentPeriod: 2, Time: '45:00', Clock: { Status: clock_status_1.ClockStatus.Running, Seconds: 45 }, Results: [{ id: 1 }, { id: 2 }], }; const scoreboard = (0, class_transformer_1.plainToInstance)(scoreboard_1.Scoreboard, plain, { excludeExtraneousValues: true }); expect(scoreboard).toBeInstanceOf(scoreboard_1.Scoreboard); expect(scoreboard.status).toBe(fixture_status_1.FixtureStatus.InProgress); expect(scoreboard.description).toBe(status_description_1.StatusDescription.HT); expect(scoreboard.currentPeriod).toBe(2); expect(scoreboard.time).toBe('45:00'); expect(scoreboard.clock).toBeInstanceOf(clock_1.Clock); expect(scoreboard.clock?.status).toBe(clock_status_1.ClockStatus.Running); expect(scoreboard.clock?.seconds).toBe(45); expect(Array.isArray(scoreboard.results)).toBe(true); expect(scoreboard.results?.[0]).toBeInstanceOf(result_1.Result); }); it('should handle missing properties', () => { const plain = {}; const scoreboard = (0, class_transformer_1.plainToInstance)(scoreboard_1.Scoreboard, plain, { excludeExtraneousValues: true }); expect(scoreboard.status).toBeUndefined(); expect(scoreboard.description).toBeUndefined(); expect(scoreboard.currentPeriod).toBeUndefined(); expect(scoreboard.time).toBeUndefined(); expect(scoreboard.clock).toBeUndefined(); expect(scoreboard.results).toBeUndefined(); }); it('should ignore extraneous properties', () => { const plain = { Status: fixture_status_1.FixtureStatus.Finished, Extra: 'ignore me', }; const scoreboard = (0, class_transformer_1.plainToInstance)(scoreboard_1.Scoreboard, plain, { excludeExtraneousValues: true }); expect(scoreboard.Extra).toBeUndefined(); }); }); //# sourceMappingURL=scoreboard.spec.js.map