UNPKG

trade360-nodejs-sdk

Version:

LSports Trade360 SDK for Node.js

48 lines 2.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const class_transformer_1 = require("class-transformer"); const provider_bet_1 = require("../../../../src/entities/core-entities/market/provider-bet"); const base_bet_1 = require("../../../../src/entities/core-entities/market/base-bet"); const id_transformation_error_1 = require("../../../../src/entities/errors/id-transformation.error"); describe('ProviderBet Entity', () => { it('should deserialize a plain object into a ProviderBet instance', () => { const plain = { Id: 1, Name: 'Provider Bet', }; const providerBet = (0, class_transformer_1.plainToInstance)(provider_bet_1.ProviderBet, plain, { excludeExtraneousValues: true }); expect(providerBet).toBeInstanceOf(provider_bet_1.ProviderBet); expect(providerBet).toBeInstanceOf(base_bet_1.BaseBet); expect(providerBet.id).toBe(1n); expect(providerBet.name).toBe('Provider Bet'); }); it('should throw IdTransformationError when Id is missing', () => { const plain = {}; expect(() => { (0, class_transformer_1.plainToInstance)(provider_bet_1.ProviderBet, plain, { excludeExtraneousValues: true }); }).toThrow(id_transformation_error_1.IdTransformationError); try { (0, class_transformer_1.plainToInstance)(provider_bet_1.ProviderBet, plain, { excludeExtraneousValues: true }); } catch (error) { expect(error.message).toContain('Field is required but received null or undefined'); expect(error.fieldName).toBe('Id'); } }); it('should handle missing optional properties with valid Id', () => { const plain = { Id: 123 }; const providerBet = (0, class_transformer_1.plainToInstance)(provider_bet_1.ProviderBet, plain, { excludeExtraneousValues: true }); expect(providerBet.id).toBe(123n); expect(providerBet.name).toBeUndefined(); }); it('should ignore extraneous properties', () => { const plain = { Id: 2, Name: 'Test ProviderBet', Extra: 'ignore me', }; const providerBet = (0, class_transformer_1.plainToInstance)(provider_bet_1.ProviderBet, plain, { excludeExtraneousValues: true }); expect(providerBet.Extra).toBeUndefined(); }); }); //# sourceMappingURL=provider-bet.spec.js.map