trade360-nodejs-sdk
Version:
LSports Trade360 SDK for Node.js
54 lines • 2.89 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const class_transformer_1 = require("class-transformer");
const outright_league_fixture_1 = require("../../../../src/entities/core-entities/outright-league/outright-league-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");
describe('OutrightLeagueFixture', () => {
it('should deserialize a plain object into an OutrightLeagueFixture instance', () => {
const plain = {
Subscription: { Type: 1, Status: 'Active' },
Sport: { id: 2, name: 'Football' },
Location: { id: 3, name: 'Europe' },
LastUpdate: '2024-06-01T12:00:00Z',
Status: 1,
ExtraData: [{ Name: 'foo', Value: 'bar' }],
EndDate: '2030-06-01T13:00:00Z',
};
const fixture = (0, class_transformer_1.plainToInstance)(outright_league_fixture_1.OutrightLeagueFixture, plain, {
excludeExtraneousValues: true,
});
expect(fixture).toBeInstanceOf(outright_league_fixture_1.OutrightLeagueFixture);
expect(fixture.subscription).toBeInstanceOf(subscription_1.Subscription);
expect(fixture.sport).toBeDefined();
expect(fixture.location).toBeDefined();
expect(fixture.lastUpdate).toBeInstanceOf(Date);
expect(fixture.lastUpdate?.toISOString()).toBe('2024-06-01T12:00:00.000Z');
expect(Array.isArray(fixture.extraData)).toBe(true);
expect(fixture.extraData?.[0]).toBeInstanceOf(name_value_record_1.NameValueRecord);
expect(fixture.status).toBe(1);
expect(fixture.endDate).toBeInstanceOf(Date);
expect(fixture.endDate?.toISOString()).toBe('2030-06-01T13:00:00.000Z');
});
it('should handle missing properties', () => {
const plain = {};
const fixture = (0, class_transformer_1.plainToInstance)(outright_league_fixture_1.OutrightLeagueFixture, plain, {
excludeExtraneousValues: true,
});
expect(fixture.subscription).toBeUndefined();
expect(fixture.sport).toBeUndefined();
expect(fixture.location).toBeUndefined();
expect(fixture.lastUpdate).toBeUndefined();
expect(fixture.status).toBeUndefined();
expect(fixture.extraData).toBeUndefined();
expect(fixture.endDate).toBeUndefined();
});
it('should ignore extraneous properties', () => {
const plain = { Status: 2, Extra: 'ignore me' };
const fixture = (0, class_transformer_1.plainToInstance)(outright_league_fixture_1.OutrightLeagueFixture, plain, {
excludeExtraneousValues: true,
});
expect(fixture.Extra).toBeUndefined();
});
});
//# sourceMappingURL=outright-league-fixture.spec.js.map