import { Test, TestingModule } from '@nestjs/testing';
import { OrderEventsService } from './order-events.service';

describe('OrderEventsService', () => {
  let service: OrderEventsService;

  beforeEach(async () => {
    const module: TestingModule = await Test.createTestingModule({
      providers: [OrderEventsService],
    }).compile();

    service = module.get<OrderEventsService>(OrderEventsService);
  });

  it('should emit order update and observable should receive it', (done) => {
    service.getOrderUpdates().subscribe((event) => {
      expect(event.businessId).toBe('biz-123');
      expect(event.type).toBe('order_created');
      expect(event.orderNumber).toBe('ORD-123456');
      done();
    });

    service.emitOrderUpdate('biz-123', {
      type: 'order_created',
      orderId: 'order-1',
      orderNumber: 'ORD-123456',
      status: 'PENDING',
    });
  });
});
