UNPKG

trade360-nodejs-sdk

Version:

LSports Trade360 SDK for Node.js

50 lines 2.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const class_transformer_1 = require("class-transformer"); const provider_market_1 = require("../../../../src/entities/core-entities/market/provider-market"); const provider_bet_1 = require("../../../../src/entities/core-entities/market/provider-bet"); describe('ProviderMarket Entity', () => { it('should deserialize a plain object into a ProviderMarket instance', () => { const plain = { Id: 1, Name: 'Provider1', Bets: [ { Id: 10, Name: 'Bet1' }, { Id: 11, Name: 'Bet2' }, ], LastUpdate: '2024-06-01T12:00:00Z', }; const providerMarket = (0, class_transformer_1.plainToInstance)(provider_market_1.ProviderMarket, plain, { excludeExtraneousValues: true, }); expect(providerMarket).toBeInstanceOf(provider_market_1.ProviderMarket); expect(providerMarket.id).toBe(1); expect(providerMarket.name).toBe('Provider1'); expect(Array.isArray(providerMarket.Bets)).toBe(true); expect(providerMarket.Bets?.[0]).toBeInstanceOf(provider_bet_1.ProviderBet); expect(providerMarket.lastUpdate).toBeInstanceOf(Date); expect(providerMarket.lastUpdate?.toISOString()).toBe('2024-06-01T12:00:00.000Z'); }); it('should handle missing properties', () => { const plain = {}; const providerMarket = (0, class_transformer_1.plainToInstance)(provider_market_1.ProviderMarket, plain, { excludeExtraneousValues: true, }); expect(providerMarket.id).toBeUndefined(); expect(providerMarket.name).toBeUndefined(); expect(providerMarket.Bets).toBeUndefined(); expect(providerMarket.lastUpdate).toBeUndefined(); }); it('should ignore extraneous properties', () => { const plain = { Id: 2, Name: 'Test ProviderMarket', Extra: 'ignore me', }; const providerMarket = (0, class_transformer_1.plainToInstance)(provider_market_1.ProviderMarket, plain, { excludeExtraneousValues: true, }); expect(providerMarket.Extra).toBeUndefined(); }); }); //# sourceMappingURL=provider-market.spec.js.map