trade360-nodejs-sdk
Version:
LSports Trade360 SDK for Node.js
52 lines • 2.59 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const class_transformer_1 = require("class-transformer");
const player_statistic_1 = require("../../../../src/entities/core-entities/livescore/player-statistic");
const statistic_value_1 = require("../../../../src/entities/core-entities/livescore/statistic-value");
describe('PlayerStatistic Entity', () => {
it('should deserialize a plain object into a PlayerStatistic instance', () => {
const plain = {
PlayerId: 123,
PlayerName: 'John Doe',
TeamId: 456,
HasPlayed: true,
Statistics: [
{
Id: 1,
Name: 'Goals',
Value: '2'
}
]
};
const playerStatistic = (0, class_transformer_1.plainToInstance)(player_statistic_1.PlayerStatistic, plain, { excludeExtraneousValues: true });
expect(playerStatistic).toBeInstanceOf(player_statistic_1.PlayerStatistic);
expect(playerStatistic.playerId).toBe(123);
expect(playerStatistic.playerName).toBe('John Doe');
expect(playerStatistic.teamId).toBe(456);
expect(playerStatistic.hasPlayed).toBe(true);
expect(Array.isArray(playerStatistic.statistics)).toBe(true);
expect(playerStatistic.statistics?.[0]).toBeInstanceOf(statistic_value_1.StatisticValue);
expect(playerStatistic.statistics?.[0].id).toBe(1);
expect(playerStatistic.statistics?.[0].name).toBe('Goals');
expect(playerStatistic.statistics?.[0].value).toBe('2');
});
it('should handle missing properties', () => {
const plain = {};
const playerStatistic = (0, class_transformer_1.plainToInstance)(player_statistic_1.PlayerStatistic, plain, { excludeExtraneousValues: true });
expect(playerStatistic.playerId).toBeUndefined();
expect(playerStatistic.playerName).toBeUndefined();
expect(playerStatistic.teamId).toBeUndefined();
expect(playerStatistic.hasPlayed).toBeUndefined();
expect(playerStatistic.statistics).toBeUndefined();
});
it('should ignore extraneous properties', () => {
const plain = {
PlayerId: 123,
PlayerName: 'John Doe',
Extra: 'ignore me'
};
const playerStatistic = (0, class_transformer_1.plainToInstance)(player_statistic_1.PlayerStatistic, plain, { excludeExtraneousValues: true });
expect(playerStatistic.Extra).toBeUndefined();
});
});
//# sourceMappingURL=player-statistic.spec.js.map