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