UNPKG

trade360-nodejs-sdk

Version:

LSports Trade360 SDK for Node.js

48 lines 2.23 kB
"use strict"; 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