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