trade360-nodejs-sdk
Version:
LSports Trade360 SDK for Node.js
39 lines • 2.14 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const class_transformer_1 = require("class-transformer");
const statistic_1 = require("../../../../src/entities/core-entities/livescore/statistic");
const result_1 = require("../../../../src/entities/core-entities/livescore/result");
const incident_1 = require("../../../../src/entities/core-entities/livescore/incident");
const statistic_type_1 = require("../../../../src/entities/core-entities/enums/statistic-type");
describe('Statistic Entity', () => {
it('should deserialize a plain object into a Statistic instance', () => {
const plain = {
Type: statistic_type_1.StatisticType.Goal,
Results: [{ position: '1st', value: '2' }],
Incidents: [{ period: 1 }],
};
const statistic = (0, class_transformer_1.plainToInstance)(statistic_1.Statistic, plain, { excludeExtraneousValues: true });
expect(statistic).toBeInstanceOf(statistic_1.Statistic);
expect(statistic.type).toBe(statistic_type_1.StatisticType.Goal);
expect(Array.isArray(statistic.results)).toBe(true);
expect(statistic.results?.[0]).toBeInstanceOf(result_1.Result);
expect(Array.isArray(statistic.incidents)).toBe(true);
expect(statistic.incidents?.[0]).toBeInstanceOf(incident_1.Incident);
});
it('should handle missing properties', () => {
const plain = {};
const statistic = (0, class_transformer_1.plainToInstance)(statistic_1.Statistic, plain, { excludeExtraneousValues: true });
expect(statistic.type).toBeUndefined();
expect(statistic.results).toBeUndefined();
expect(statistic.incidents).toBeUndefined();
});
it('should ignore extraneous properties', () => {
const plain = {
Type: statistic_type_1.StatisticType.Corners,
Extra: 'ignore me',
};
const statistic = (0, class_transformer_1.plainToInstance)(statistic_1.Statistic, plain, { excludeExtraneousValues: true });
expect(statistic.Extra).toBeUndefined();
});
});
//# sourceMappingURL=statistic.spec.js.map