feat(#195): SSE realtime Cartes (stream + emit audience)
GET /api/v1/cards/stream (Bearer ou ?access_token=). Events card.created|updated|deleted, response.added + heartbeat. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -2,6 +2,7 @@ import { Test, TestingModule } from '@nestjs/testing';
|
||||
import { getRepositoryToken } from '@nestjs/typeorm';
|
||||
import { ForbiddenException } from '@nestjs/common';
|
||||
import { CardsService } from './cards.service';
|
||||
import { CardsRealtimeService } from './cards-realtime.service';
|
||||
import { AbsencesGardeService } from '../absences-garde/absences-garde.service';
|
||||
import { CardType, CardResponseModeType } from 'src/entities/card_types.entity';
|
||||
import {
|
||||
@@ -32,6 +33,7 @@ describe('CardsService (#194)', () => {
|
||||
create: jest.fn((x) => x),
|
||||
save: jest.fn(),
|
||||
findOne: jest.fn(),
|
||||
find: jest.fn(),
|
||||
};
|
||||
const responsesRepo = {
|
||||
create: jest.fn((x) => x),
|
||||
@@ -44,6 +46,7 @@ describe('CardsService (#194)', () => {
|
||||
maj: jest.fn(),
|
||||
supprimer: jest.fn(),
|
||||
};
|
||||
const realtime = { emitToUsers: jest.fn() };
|
||||
|
||||
beforeEach(async () => {
|
||||
const module: TestingModule = await Test.createTestingModule({
|
||||
@@ -56,6 +59,7 @@ describe('CardsService (#194)', () => {
|
||||
{ provide: getRepositoryToken(AmChildren), useValue: amChildrenRepo },
|
||||
{ provide: getRepositoryToken(ParentsChildren), useValue: parentsChildrenRepo },
|
||||
{ provide: AbsencesGardeService, useValue: absencesService },
|
||||
{ provide: CardsRealtimeService, useValue: realtime },
|
||||
],
|
||||
}).compile();
|
||||
service = module.get(CardsService);
|
||||
@@ -112,7 +116,11 @@ describe('CardsService (#194)', () => {
|
||||
retention_days: 14,
|
||||
},
|
||||
responses: [],
|
||||
audience: [],
|
||||
audience: [
|
||||
{ id_utilisateur: 'am-1' },
|
||||
{ id_utilisateur: 'p-1' },
|
||||
{ id_utilisateur: 'p-2' },
|
||||
],
|
||||
});
|
||||
|
||||
const res = await service.creer('am-1', RoleType.ASSISTANTE_MATERNELLE, {
|
||||
@@ -124,6 +132,12 @@ describe('CardsService (#194)', () => {
|
||||
|
||||
expect(absencesService.creer).toHaveBeenCalled();
|
||||
expect(audienceRepo.save).toHaveBeenCalled();
|
||||
expect(realtime.emitToUsers).toHaveBeenCalledWith(
|
||||
['am-1', 'p-1', 'p-2'],
|
||||
'card.created',
|
||||
'card-1',
|
||||
expect.any(Object),
|
||||
);
|
||||
expect(res.type_code).toBe('conge_am');
|
||||
expect(res.statut).toBe(CardInstanceStatutType.OUVERTE);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user