trade360-nodejs-sdk
Version:
LSports Trade360 SDK for Node.js
53 lines • 3.14 kB
JavaScript
;
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