UNPKG

trade360-nodejs-sdk

Version:
53 lines 3.14 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const class_transformer_1 = require("class-transformer"); const outright_fixture_1 = require("../../../../src/entities/core-entities/outright-sport/outright-fixture"); const subscription_1 = require("../../../../src/entities/core-entities/common/subscription"); const name_value_record_1 = require("../../../../src/entities/core-entities/common/name-value-record"); const outright_participant_1 = require("../../../../src/entities/core-entities/outright-sport/outright-participant"); describe('OutrightFixture', () => { it('should deserialize a plain object into an OutrightFixture instance', () => { const plain = { Subscription: { Type: 1, Status: 'Active' }, Sport: { id: 2, name: 'Football' }, Location: { id: 3, name: 'Europe' }, StartDate: '2024-06-01T12:00:00Z', LastUpdate: '2024-06-01T13:00:00Z', Status: 1, Participants: [{ Id: 10, Name: 'P1' }], ExtraData: [{ Name: 'foo', Value: 'bar' }], }; const fixture = (0, class_transformer_1.plainToInstance)(outright_fixture_1.OutrightFixture, plain, { excludeExtraneousValues: true }); expect(fixture).toBeInstanceOf(outright_fixture_1.OutrightFixture); expect(fixture.subscription).toBeInstanceOf(subscription_1.Subscription); expect(fixture.sport).toBeDefined(); expect(fixture.location).toBeDefined(); expect(fixture.startDate).toBeInstanceOf(Date); expect(fixture.startDate?.toISOString()).toBe('2024-06-01T12:00:00.000Z'); expect(fixture.lastUpdate).toBeInstanceOf(Date); expect(fixture.lastUpdate?.toISOString()).toBe('2024-06-01T13:00:00.000Z'); expect(Array.isArray(fixture.participants)).toBe(true); expect(fixture.participants?.[0]).toBeInstanceOf(outright_participant_1.OutrightParticipant); expect(Array.isArray(fixture.extraData)).toBe(true); expect(fixture.extraData?.[0]).toBeInstanceOf(name_value_record_1.NameValueRecord); expect(fixture.status).toBe(1); }); it('should handle missing properties', () => { const plain = {}; const fixture = (0, class_transformer_1.plainToInstance)(outright_fixture_1.OutrightFixture, plain, { excludeExtraneousValues: true }); expect(fixture.subscription).toBeUndefined(); expect(fixture.sport).toBeUndefined(); expect(fixture.location).toBeUndefined(); expect(fixture.startDate).toBeUndefined(); expect(fixture.lastUpdate).toBeUndefined(); expect(fixture.status).toBeUndefined(); expect(fixture.participants).toBeUndefined(); expect(fixture.extraData).toBeUndefined(); }); it('should ignore extraneous properties', () => { const plain = { Status: 2, Extra: 'ignore me' }; const fixture = (0, class_transformer_1.plainToInstance)(outright_fixture_1.OutrightFixture, plain, { excludeExtraneousValues: true }); expect(fixture.Extra).toBeUndefined(); }); }); //# sourceMappingURL=outright-fixture.spec.js.map