trade360-nodejs-sdk
Version:
LSports Trade360 SDK for Node.js
50 lines • 2.3 kB
JavaScript
;
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