trade360-nodejs-sdk
Version:
LSports Trade360 SDK for Node.js
60 lines • 2.72 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const class_transformer_1 = require("class-transformer");
const outright_market_body_structure_1 = require("../../../../../src/api/common/body-entities/responses/outright-market-body-structure");
const bet_1 = require("../../../../../src/entities/core-entities/market/bet");
describe('OutrightMarketBodyStructure', () => {
it('should deserialize a plain object into an OutrightMarketBodyStructure instance', () => {
const plain = {
Id: 12345,
Name: 'Outright Winner',
Bets: [
{ Id: 10, Name: 'Team A' },
{ Id: 11, Name: 'Team B' },
],
};
const market = (0, class_transformer_1.plainToInstance)(outright_market_body_structure_1.OutrightMarketBodyStructure, plain, {
excludeExtraneousValues: true,
});
expect(market).toBeInstanceOf(outright_market_body_structure_1.OutrightMarketBodyStructure);
expect(market.id).toBe(12345);
expect(market.name).toBe('Outright Winner');
expect(Array.isArray(market.bets)).toBe(true);
expect(market.bets?.[0]).toBeInstanceOf(bet_1.Bet);
expect(market.bets?.[0]?.id).toBe('10');
expect(market.bets?.[1]?.id).toBe('11');
});
it('should handle missing properties', () => {
const plain = {};
const market = (0, class_transformer_1.plainToInstance)(outright_market_body_structure_1.OutrightMarketBodyStructure, plain, {
excludeExtraneousValues: true,
});
expect(market.id).toBeUndefined();
expect(market.name).toBeUndefined();
expect(market.bets).toBeUndefined();
});
it('should ignore extraneous properties', () => {
const plain = {
Id: 67890,
Name: 'Test Market',
Extra: 'ignore me',
};
const market = (0, class_transformer_1.plainToInstance)(outright_market_body_structure_1.OutrightMarketBodyStructure, plain, {
excludeExtraneousValues: true,
});
expect(market.id).toBe(67890);
expect(market.Extra).toBeUndefined();
});
it('should correctly deserialize Id field with capital I', () => {
const plain = {
Id: 274,
Name: 'Outright Winner Market',
};
const market = (0, class_transformer_1.plainToInstance)(outright_market_body_structure_1.OutrightMarketBodyStructure, plain, {
excludeExtraneousValues: true,
});
expect(market.id).toBe(274);
expect(market.name).toBe('Outright Winner Market');
});
});
//# sourceMappingURL=outright-market-body-structure.spec.js.map