domain-objects
Version:
A simple, convenient way to represent domain objects, leverage domain knowledge, and add runtime validation in your code base.
28 lines • 1.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const DomainEvent_1 = require("./DomainEvent");
describe('DomainEvent', () => {
it('should be able to represent an event', () => {
class OrderPlacedEvent extends DomainEvent_1.DomainEvent {
}
const event = new OrderPlacedEvent({
orderUuid: '__ORDER_UUID__',
customerUuid: '__CUSTOMER_UUID__',
occurredAt: '__TIMESTAMP__',
});
expect(event.orderUuid).toEqual('__ORDER_UUID__'); // sanity check
});
it('should be spreadable', () => {
class OrderPlacedEvent extends DomainEvent_1.DomainEvent {
}
const event = new OrderPlacedEvent({
orderUuid: '__ORDER_UUID__',
customerUuid: '__CUSTOMER_UUID__',
occurredAt: '__TIMESTAMP__',
});
const differentEvent = new OrderPlacedEvent(Object.assign(Object.assign({}, event), { orderUuid: '__DIFFERENT_ORDER_UUID__' }));
expect(differentEvent.orderUuid).toEqual('__DIFFERENT_ORDER_UUID__'); // sanity check
expect(differentEvent.customerUuid).toEqual('__CUSTOMER_UUID__'); // sanity check
});
});
//# sourceMappingURL=DomainEvent.test.js.map