From 8e5f9696efe91c0d8c3b182f2910c3bbe5561412 Mon Sep 17 00:00:00 2001 From: Matheus Nespolo Date: Wed, 7 Oct 2026 17:20:36 -0300 Subject: [PATCH] test(e2e): sistema ocupado confirma o pedido na aba que pediu MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit No CI, a segunda aba às vezes perde o WebSocket enquanto termina de carregar a cena 3D (renderização por software) e reconecta logo depois; como o dashboard não repete o histórico numa reconexão, o 'Peça A solicitada' emitido nesse intervalo nunca aparecia nela. A confirmação passa a ser lida na aba principal; a segunda aba só precisa do estado ocupado (que chega por 'status' ou pelo 'estado_inicial' da reconexão) e da recusa do pedido de B. Co-Authored-By: Claude Opus 5.5 --- test/frontend_smoke/comandos-recusados.spec.mjs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/test/frontend_smoke/comandos-recusados.spec.mjs b/test/frontend_smoke/comandos-recusados.spec.mjs index ee3d698..d1205d8 100644 --- a/test/frontend_smoke/comandos-recusados.spec.mjs +++ b/test/frontend_smoke/comandos-recusados.spec.mjs @@ -19,12 +19,16 @@ test('E2E3 — pedido com o sistema ocupado é recusado e o histórico mostra o // O simulador é compartilhado com os specs anteriores e reenvia os últimos eventos em // "estado_inicial": o histórico já pode trazer pedidos/entregas de A. Conta antes de pedir. - const solicitadasAntes = await historicoContendo(segunda, 'Peça A solicitada').count(); + const solicitadasAntes = await historicoContendo(principal, 'Peça A solicitada').count(); const entreguesAntes = await historicoContendo(principal, 'Peça A entregue').count(); await principal.locator('#btn-solicitar-a').click(); // Aguarda o evento de pedido aceite confirmar que o simulador saiu do estado inicial. - await expect(historicoContendo(segunda, 'Peça A solicitada')).toHaveCount(solicitadasAntes + 1); + // A confirmação é lida na aba que pediu: no CI, a segunda aba às vezes perde o WebSocket + // enquanto termina de carregar a cena 3D e, ao reconectar, o dashboard não repete o + // histórico (só o estado). O estado ocupado chega a ela de qualquer forma, via + // "status" ou "estado_inicial" da reconexão. + await expect(historicoContendo(principal, 'Peça A solicitada')).toHaveCount(solicitadasAntes + 1); await expect(segunda.locator('#estado-atual')).not.toHaveText('AGUARDANDO_PEDIDO'); // Os botões ficam desabilitados fora de AGUARDANDO_PEDIDO; o pedido vai direto pelo socket.