feat: aligner event handler Socket.IO sur le contrat snake_case (#20)
- Ecouter call_event au lieu de ipbx_event - Lire event_code, queue_name, terminal en snake_case - handleCallPickedUp/handleCallHungUp utilisent event.queue_name - renderer.js lit data.queue_name - 3 tests unitaires ajoutés dans socketio-adapter.test.js
This commit is contained in:
@@ -128,4 +128,63 @@ describe("SocketIOAdapter", () => {
|
||||
|
||||
expect(states).toEqual(["connecting", "connected", "reconnecting", "connected"]);
|
||||
});
|
||||
|
||||
test("on('call_event') recoit les champs snake_case du serveur", async () => {
|
||||
const received = [];
|
||||
adapter.on('call_event', (data) => received.push(data));
|
||||
|
||||
const p = adapter.connect("1234", "pass", "2001");
|
||||
socket._fire("login_ok", { accessCode: "1234" });
|
||||
await p;
|
||||
|
||||
// Le serveur envoie un call_event avec champs snake_case
|
||||
socket._fire("call_event", {
|
||||
event_code: 1,
|
||||
queue_name: "FILE_CENTRE_A",
|
||||
terminal: "2001",
|
||||
});
|
||||
|
||||
expect(received).toHaveLength(1);
|
||||
expect(received[0].event_code).toBe(1);
|
||||
expect(received[0].queue_name).toBe("FILE_CENTRE_A");
|
||||
expect(received[0].terminal).toBe("2001");
|
||||
});
|
||||
|
||||
test("on('call_event') enregistré avant connect() est dispatché après connexion", async () => {
|
||||
const received = [];
|
||||
// Enregistrer le handler AVANT connect (comme le fait main.js)
|
||||
adapter.on('call_event', (data) => received.push(data));
|
||||
|
||||
const p = adapter.connect("1234", "pass", "2001");
|
||||
socket._fire("login_ok", { accessCode: "1234" });
|
||||
await p;
|
||||
|
||||
// Le serveur envoie un call_event
|
||||
socket._fire("call_event", {
|
||||
event_code: 2,
|
||||
queue_name: "FILE_CENTRE_B",
|
||||
terminal: "2001",
|
||||
});
|
||||
|
||||
expect(received).toHaveLength(1);
|
||||
expect(received[0].event_code).toBe(2);
|
||||
expect(received[0].queue_name).toBe("FILE_CENTRE_B");
|
||||
});
|
||||
|
||||
test("off('call_event') supprime le handler", async () => {
|
||||
const received = [];
|
||||
adapter.on('call_event', (data) => received.push(data));
|
||||
|
||||
const p = adapter.connect("1234", "pass", "2001");
|
||||
socket._fire("login_ok", { accessCode: "1234" });
|
||||
await p;
|
||||
|
||||
// Supprimer le handler
|
||||
adapter.off('call_event');
|
||||
|
||||
// L'event ne devrait plus être capté
|
||||
socket._fire("call_event", { event_code: 1, queue_name: "FILE", terminal: "2001" });
|
||||
|
||||
expect(received).toHaveLength(0);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user