UNPKG

trade360-nodejs-sdk

Version:

LSports Trade360 SDK for Node.js

53 lines 2.48 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const class_transformer_1 = require("class-transformer"); const provider_1 = require("../../../../src/entities/core-entities/market/provider"); const bet_1 = require("../../../../src/entities/core-entities/market/bet"); describe('Provider Entity', () => { it('should deserialize a plain object into a Provider instance', () => { const plain = { id: 1, name: 'ProviderX', lastUpdate: '2024-06-01T12:00:00Z', providerFixtureId: 'F123', providerLeagueId: 'L456', providerMarketId: 'M789', bets: [ { Id: 10, Name: 'Bet1' }, { Id: 11, Name: 'Bet2' }, ], }; const provider = (0, class_transformer_1.plainToInstance)(provider_1.Provider, plain, { excludeExtraneousValues: true }); expect(provider).toBeInstanceOf(provider_1.Provider); expect(provider.Id).toBe(1); expect(provider.Name).toBe('ProviderX'); expect(provider.LastUpdate).toBeInstanceOf(Date); expect(provider.LastUpdate?.toISOString()).toBe('2024-06-01T12:00:00.000Z'); expect(provider.ProviderFixtureId).toBe('F123'); expect(provider.ProviderLeagueId).toBe('L456'); expect(provider.ProviderMarketId).toBe('M789'); expect(Array.isArray(provider.Bets)).toBe(true); expect(provider.Bets?.[0]).toBeInstanceOf(bet_1.Bet); }); it('should handle missing properties', () => { const plain = {}; const provider = (0, class_transformer_1.plainToInstance)(provider_1.Provider, plain, { excludeExtraneousValues: true }); expect(provider.Id).toBeUndefined(); expect(provider.Name).toBeUndefined(); expect(provider.LastUpdate).toBeUndefined(); expect(provider.ProviderFixtureId).toBeUndefined(); expect(provider.ProviderLeagueId).toBeUndefined(); expect(provider.ProviderMarketId).toBeUndefined(); expect(provider.Bets).toBeUndefined(); }); it('should ignore extraneous properties', () => { const plain = { id: 2, name: 'Test Provider', Extra: 'ignore me', }; const provider = (0, class_transformer_1.plainToInstance)(provider_1.Provider, plain, { excludeExtraneousValues: true }); expect(provider.Extra).toBeUndefined(); }); }); //# sourceMappingURL=provider.spec.js.map