trade360-nodejs-sdk
Version:
LSports Trade360 SDK for Node.js
36 lines • 1.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const class_transformer_1 = require("class-transformer");
const market_event_1 = require("../../../../src/entities/core-entities/market/market-event");
const market_1 = require("../../../../src/entities/core-entities/market/market");
describe('MarketEvent Entity', () => {
it('should deserialize a plain object into a MarketEvent instance', () => {
const plain = {
FixtureId: 123,
Markets: [
{ Id: 1, Name: 'Market1' },
{ Id: 2, Name: 'Market2' },
],
};
const event = (0, class_transformer_1.plainToInstance)(market_event_1.MarketEvent, plain, { excludeExtraneousValues: true });
expect(event).toBeInstanceOf(market_event_1.MarketEvent);
expect(event.fixtureId).toBe(123);
expect(Array.isArray(event.markets)).toBe(true);
expect(event.markets?.[0]).toBeInstanceOf(market_1.Market);
});
it('should handle missing properties', () => {
const plain = {};
const event = (0, class_transformer_1.plainToInstance)(market_event_1.MarketEvent, plain, { excludeExtraneousValues: true });
expect(event.fixtureId).toBeUndefined();
expect(event.markets).toBeUndefined();
});
it('should ignore extraneous properties', () => {
const plain = {
FixtureId: 456,
Extra: 'ignore me',
};
const event = (0, class_transformer_1.plainToInstance)(market_event_1.MarketEvent, plain, { excludeExtraneousValues: true });
expect(event.Extra).toBeUndefined();
});
});
//# sourceMappingURL=market-event.spec.js.map