trade360-nodejs-sdk
Version:
LSports Trade360 SDK for Node.js
49 lines • 2.39 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const class_transformer_1 = require("class-transformer");
const players_1 = require("../../../../src/entities/core-entities/livescore/players");
const player_1 = require("../../../../src/entities/core-entities/livescore/player");
describe('Players Entity', () => {
it('should deserialize a plain object into a Players instance', () => {
const plain = {
Item1: [{ Id: 207444, Name: 'Ferran Torres' }],
Item2: [{ Id: 643815, Name: 'Lamine Yamal' }],
};
const players = (0, class_transformer_1.plainToInstance)(players_1.Players, plain, { excludeExtraneousValues: true });
expect(players).toBeInstanceOf(players_1.Players);
expect(Array.isArray(players.item1)).toBe(true);
expect(Array.isArray(players.item2)).toBe(true);
expect(players.item1?.[0]).toBeInstanceOf(player_1.Player);
expect(players.item2?.[0]).toBeInstanceOf(player_1.Player);
expect(players.item1?.[0].id).toBe(207444);
expect(players.item1?.[0].name).toBe('Ferran Torres');
expect(players.item2?.[0].id).toBe(643815);
expect(players.item2?.[0].name).toBe('Lamine Yamal');
});
it('should handle missing properties', () => {
const plain = {};
const players = (0, class_transformer_1.plainToInstance)(players_1.Players, plain, { excludeExtraneousValues: true });
expect(players.item1).toBeUndefined();
expect(players.item2).toBeUndefined();
});
it('should handle empty arrays', () => {
const plain = {
Item1: [],
Item2: [],
};
const players = (0, class_transformer_1.plainToInstance)(players_1.Players, plain, { excludeExtraneousValues: true });
expect(Array.isArray(players.item1)).toBe(true);
expect(Array.isArray(players.item2)).toBe(true);
expect(players.item1?.length).toBe(0);
expect(players.item2?.length).toBe(0);
});
it('should ignore extraneous properties', () => {
const plain = {
Item1: [],
Extra: 'ignore me',
};
const players = (0, class_transformer_1.plainToInstance)(players_1.Players, plain, { excludeExtraneousValues: true });
expect(players.Extra).toBeUndefined();
});
});
//# sourceMappingURL=players.spec.js.map