trade360-nodejs-sdk
Version:
LSports Trade360 SDK for Node.js
48 lines • 2.23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const class_transformer_1 = require("class-transformer");
const market_1 = require("../../../../src/entities/core-entities/market/market");
const bet_1 = require("../../../../src/entities/core-entities/market/bet");
const provider_market_1 = require("../../../../src/entities/core-entities/market/provider-market");
describe('Market Entity', () => {
it('should deserialize a plain object into a Market instance', () => {
const plain = {
Id: 1,
Name: 'Match Winner',
Bets: [
{ Id: 10, Name: 'Home' },
{ Id: 11, Name: 'Away' },
],
ProviderMarkets: [{ Id: 100, Name: 'Provider1' }],
MainLine: '1.5',
};
const market = (0, class_transformer_1.plainToInstance)(market_1.Market, plain, { excludeExtraneousValues: true });
expect(market).toBeInstanceOf(market_1.Market);
expect(market.id).toBe(1);
expect(market.name).toBe('Match Winner');
expect(Array.isArray(market.bets)).toBe(true);
expect(market.bets?.[0]).toBeInstanceOf(bet_1.Bet);
expect(Array.isArray(market.providerMarkets)).toBe(true);
expect(market.providerMarkets?.[0]).toBeInstanceOf(provider_market_1.ProviderMarket);
expect(market.mainLine).toBe('1.5');
});
it('should handle missing properties', () => {
const plain = {};
const market = (0, class_transformer_1.plainToInstance)(market_1.Market, plain, { excludeExtraneousValues: true });
expect(market.id).toBeUndefined();
expect(market.name).toBeUndefined();
expect(market.bets).toBeUndefined();
expect(market.providerMarkets).toBeUndefined();
expect(market.mainLine).toBeUndefined();
});
it('should ignore extraneous properties', () => {
const plain = {
Id: 2,
Name: 'Test Market',
Extra: 'ignore me',
};
const market = (0, class_transformer_1.plainToInstance)(market_1.Market, plain, { excludeExtraneousValues: true });
expect(market.Extra).toBeUndefined();
});
});
//# sourceMappingURL=market.spec.js.map