Cenários de Teste — Check-in de Usuários — Épico 5 — Menu Lateral
Funcionalidade: [CIU-E5] Menu Lateral (parte do guarda-chuva Check-in de Usuários, v2.25)
Versão de referência da especificação: 01-Definição v1.7 / 02-Especificação v1.5 / 03-Protótipo v1.6 / 04-Mapeamento de BD v1.5
Autor: Marcos Arao, para uso da equipe de QA do Gemed 2.1
Massa de dados de referência: não existe ainda. Nenhuma carga de teste para o Menu Lateral foi localizada no vault (a única massa existente, CargaCMZero.xlsx, é da Central do Médico e não contém Processo/ClientePerfilAcessoProcesso/ClienteUsuarioMenuFavorito). Este documento usa uma massa proposta [PROPOSTA] — descrita na Seção 1, “Massa de dados proposta” — que precisa ser criada e confirmada antes da execução. Todos os nomes de usuário, clínica e perfil abaixo (U1, U2, U3, “Clínica Teste A/B”, PERFIL-A/B/VAZIO) são rótulos inventados para este documento, não registros existentes em nenhuma base.
Data-base dos testes: não aplicável — nenhum comportamento deste épico depende de data/hora.
1. Escopo
Este documento cobre a homologação funcional do Menu Lateral, conforme CIU-E5: estrutura de grupos e itens filtrada por perfil de acesso (RN-CIU-026/027), Favoritos (RN-CIU-028), Busca (RN-CIU-030), comportamento responsivo desktop/mobile (RN-CIU-029), cabeçalho com identificação da clínica, botão Trocar e rodapé, além dos 4 fluxos de exceção (EX-E5-01 a EX-E5-04) e do catálogo de mensagens.
Fora de escopo deste documento:
- Tela inicial (escolha opcional do usuário via
ClienteUsuarioMenuFavorito.ProcessoAberturae cockpit padrão viaClientePerfilAcessoUsuario.CodProfissional) — a própria 01-Definição (RN-CIU-028, nota final) registra que nenhum critério de aceitação desta versão exercita esse comportamento, eCodProfissionalainda está com migração pendente no banco. Sem CA, sem CT. - Conteúdo de qualquer tela aberta pelo menu (Central do Médico, Agenda do Médico etc.) — cada uma tem seu próprio Cenários de Teste (ou terá).
- “Meu Perfil” — não é item deste menu (01-Definição, Fora do escopo).
- “Suporte Gemed” — item em aberto (01-Definição, Lista consolidada [PROPOSTA], item 2), retirado do Protótipo.
- Cadastro/administração de perfis de acesso — Contexto de Segurança. Aqui só se altera configuração de perfil como pré-condição de teste.
- A árvore real de produção — ainda não existe (01-Definição, Lista consolidada [PROPOSTA], item 1). Os casos usam a árvore de exemplo do Protótipo v1.6.
Cada seção traz uma tabela de casos (ID, Pré-condição, Passos, Resultado Esperado, Dados de Teste, RN/CA Relacionada). Casos marcados (API) são executados diretamente contra o endpoint (Postman, devtools ou equivalente), não pela interface. Casos marcados (BD) exigem conferência direta no banco IpSeguranca.
Endpoints envolvidos (referência)
| Endpoint | Uso |
|---|---|
GET /api/v1/menu | Carga da árvore, favoritos e clinicaAtual |
POST /api/v1/menu/items/{clientePerfilAcessoProcessoId}/favorite | Favoritar |
DELETE /api/v1/menu/items/{clientePerfilAcessoProcessoId}/favorite | Desfavoritar |
A busca não tem endpoint — opera em memória sobre a resposta do GET (02-Especificação, Integração com Backend).
Massa de dados proposta [PROPOSTA]
Tudo nesta subseção é proposta deste documento, montada a partir da árvore de exemplo do Protótipo v1.6 (
MENU_DATA) e das tabelas do 04-Mapeamento de BD §4.1-4.3. Nada aqui existe hoje em banco. Precisa ser criado (e conferido) pelo solicitante/QA antes da execução; se a massa real divergir, os resultados esperados abaixo precisam ser recalculados.
Clínicas (ClienteEmpresa, mesmo Cliente/ClienteBD, ambas com RemovidoEm nulo):
- Clínica Teste A
- Clínica Teste B
Processos (Processo/ProcessoGrupo, habilitados em ClienteProcesso para o ClienteBD de teste) — a árvore de exemplo do Protótipo v1.6, mais 1 item inventado:
Grupo (ProcessoGrupo) | Item (Processo.Nome) | Ícone (Processo.Icone) |
|---|---|---|
| Assistencial | Central do Médico (Cockpit) | stethoscope |
| Assistencial | Agenda do Médico | calendar |
| Assistencial | PEP | file-text |
| Assistencial | Prescrições Pendentes | clipboard-list |
| Assistencial | Pacientes na Clínica Hoje | users |
| Financeiro | Repasses | coins |
| Cadastros | Protocolos | list-checks |
| Cadastros | Pacientes | user-plus |
| Mensageria | Mensagens | message-circle |
(sem grupo — ProcessoGrupoId nulo) | Item Sem Grupo (teste) — inventado para este documento | circle |
O item sem grupo é necessário porque a árvore de exemplo do Protótipo v1.6 não tem nenhum item sem grupo, e RN-CIU-026 prevê esse caso.
Perfis de acesso (ClientePerfilAcesso + ClientePerfilAcessoProcesso):
- PERFIL-A (usado na Clínica Teste A) — todos os 10 itens acima com
ExibeMenu='S', exceto Protocolos, comExibeMenu='N'.Ordemdentro do Assistencial: Central do Médico (1), Agenda do Médico (2), PEP (3), Prescrições Pendentes (4), Pacientes na Clínica Hoje (5) — mesma ordem do Protótipo. Cadastros: Pacientes (1). - PERFIL-B (usado na Clínica Teste B) — só 4 itens, todos
ExibeMenu='S': no Assistencial, ordem invertida em relação ao PERFIL-A: Prescrições Pendentes (1), Agenda do Médico (2), Central do Médico (3); na Mensageria: Mensagens (1). - PERFIL-VAZIO — nenhuma linha em
ClientePerfilAcessoProcessocomExibeMenu='S'.
Usuários (ClientePerfilAcessoUsuario, RemovidoEm nulo):
| Usuário | Clínica Teste A | Clínica Teste B | Clínicas acessíveis | Favoritos pré-carregados (ClienteUsuarioMenuFavorito, RemovidoEm nulo) |
|---|---|---|---|---|
| U1 (multi-clínica) | PERFIL-A | PERFIL-B | 2 | Na A: Central do Médico (Cockpit), Agenda do Médico. Na B: Mensagens |
| U2 (clínica única) | PERFIL-A | — | 1 | Nenhum |
| U3 (perfil sem itens) | PERFIL-VAZIO | — | 1 | Nenhum |
Pendências de Massa de Dados
- Massa inteira inexistente — a massa proposta acima precisa ser criada (sugestão: uma planilha de carga no mesmo formato de
CargaCMZero.xlsx, abas por tabela do IpSeguranca). Até lá, nenhum caso deste documento é executável contra o back-end real; o Protótipo v1.6 permite exercitar só os casos visuais com a árvore de exemplo fixa (sem U1/U2/U3, sem PERFIL-B, sem item sem grupo). - “Item Sem Grupo (teste)” é inventado — se o solicitante preferir não criar um
Processoartificial, CT-E5-EST-05 fica sem massa até existir um item sem grupo real. - Ordenação alfabética × collation (CT-E5-FAV-04) — o resultado esperado supõe ordem alfabética sem distinção de maiúsculas/minúsculas (“Pacientes na Clínica Hoje” antes de “PEP”). O back-end ordena por
Processo.Nome(04-Mapeamento §4.1); o resultado real depende da collation da coluna no IpSeguranca, não conferida neste documento. Numa collation binária, “PEP” viria antes. Conferir antes da execução. - CT-E5-SIS-02 a 05 (falhas de endpoint) não dependem de massa, e sim de o ambiente permitir simular falha de
GET/POST/DELETE(proxy de rede, stub de backend, devtools). Mesma pendência já registrada no Cenários de Teste da Central do Médico (v1.26): mecanismo de simulação a definir pela QA. - CT-E5-CAB-05 (recarregar a página) depende do campo
clinicaAtualna resposta deGET /api/v1/menu, ainda marcado [PROPOSTA] na 02-Especificação v1.5.
2. Estrutura e Filtragem por Perfil de Acesso
| ID | Pré-condição | Passos | Resultado Esperado | Dados de Teste | RN/CA Relacionada |
|---|---|---|---|---|---|
| CT-E5-EST-01 | U2 autenticado na Clínica Teste A, desktop | Observar o menu logo após o carregamento | Aparecem os grupos Assistencial, Financeiro, Cadastros e Mensageria e o item “Item Sem Grupo (teste)” na lista principal. Todos os grupos recolhidos, mostrando só o nome do grupo, sem itens | PERFIL-A | RN-CIU-026; 01-Definição, Premissas |
| CT-E5-EST-02 | Mesmo estado de CT-E5-EST-01 | Tocar no grupo “Assistencial” | Assistencial expande e mostra, nesta ordem: Central do Médico (Cockpit), Agenda do Médico, PEP, Prescrições Pendentes, Pacientes na Clínica Hoje. Cada item com ícone + nome. Financeiro, Cadastros e Mensageria continuam recolhidos | PERFIL-A, Ordem 1-5 | RN-CIU-026, RN-CIU-027; CA-010.9 |
| CT-E5-EST-03 | Assistencial expandido (CT-E5-EST-02) | Tocar em “Cadastros”; depois tocar de novo em “Assistencial” | Ao expandir Cadastros: os dois grupos ficam expandidos ao mesmo tempo. Cadastros mostra só “Pacientes” (“Protocolos” não aparece, nem desabilitado). Ao recolher Assistencial: Cadastros continua expandido | PERFIL-A (Protocolos com ExibeMenu='N') | RN-CIU-026, RN-CIU-027; CA-010.1, CA-010.9 |
| CT-E5-EST-04 | U1 autenticado na Clínica Teste B | Expandir “Assistencial” | Itens nesta ordem: Prescrições Pendentes, Agenda do Médico, Central do Médico (Cockpit) (invertida em relação ao PERFIL-A). Nenhum outro item do Assistencial aparece. Só os grupos Assistencial e Mensageria aparecem | PERFIL-B | RN-CIU-027 (ordem por perfil); CA-010.1 |
| CT-E5-EST-05 | U2 na Clínica Teste A | Observar a posição de “Item Sem Grupo (teste)“ | O item aparece direto na lista principal, fora de qualquer grupo, visível sem expandir nada | Processo.ProcessoGrupoId nulo (item inventado, ver Pendências) | RN-CIU-026 |
| CT-E5-EST-06 | U2 na Clínica Teste A, desktop, Assistencial expandido | Tocar em “Agenda do Médico” | Navega para a rota do item (Processo.Rota). O item fica destacado como ativo (rota atual) no menu | PERFIL-A | 02-Especificação, Estrutura do Menu e Mapeamento de Componentes (estado “active”) |
| CT-E5-EST-07 (API) | Token de sessão de U2 na Clínica Teste A | Chamar GET /api/v1/menu e inspecionar a resposta | 200. A resposta não contém o item “Protocolos” em lugar nenhum (grupos, itensSemGrupo, favoritos). A filtragem acontece no back-end, não no front-end | PERFIL-A | RN-CIU-027; SBIS NGS1.03.01 |
| CT-E5-EST-08 (BD) | U2 na Clínica Teste A, menu carregado com “Pacientes” visível em Cadastros | 1. Alterar no banco ClientePerfilAcessoProcesso.ExibeMenu de “Pacientes” (PERFIL-A) para 'N'. 2. Recarregar o menu (nova sessão ou recarregar a página). 3. Restaurar para 'S' ao final | Após recarregar, “Pacientes” não aparece mais em Cadastros. A mudança de configuração do perfil vale a partir do próximo carregamento | PERFIL-A | RN-CIU-027; SBIS NGS1.03.03 |
| CT-E5-EST-09 | U2 na Clínica Teste A, desktop, com Assistencial e Cadastros expandidos e o menu recolhido | Encerrar a sessão (logout) e autenticar de novo | Menu volta expandido (estado padrão do desktop), com todos os grupos recolhidos. Nenhum dos dois estados é guardado entre sessões | — | 01-Definição, Premissas; 02-Especificação, Comportamento Responsivo |
| CT-E5-EST-10 | U3 autenticado na Clínica Teste A | Observar o menu | Menu vazio, com a mensagem MSG-I5-01: “Seu perfil de acesso ainda não libera nenhum item de menu. Entre em contato com o administrador da sua clínica.” Seção Favoritos não aparece. Campo de busca não aparece | PERFIL-VAZIO | RN-CIU-027; EX-E5-01; 03-Protótipo v1.6 (busca oculta neste estado, confirmado pelo solicitante) |
| CT-E5-EST-11 (API) | Token de sessão de U3 na Clínica Teste A | Chamar GET /api/v1/menu | 200 (não erro), com grupos, itensSemGrupo e favoritos vazios | PERFIL-VAZIO | 02-Especificação, GET /api/v1/menu, Códigos |
3. Favoritos
| ID | Pré-condição | Passos | Resultado Esperado | Dados de Teste | RN/CA Relacionada |
|---|---|---|---|---|---|
| CT-E5-FAV-01 | U1 autenticado na Clínica Teste A | Observar o topo do menu; expandir Assistencial | Seção “Favoritos” no topo, acima da busca e dos grupos, com Agenda do Médico e Central do Médico (Cockpit), nesta ordem (alfabética), cada um com estrela preenchida. No Assistencial, os mesmos 2 itens continuam no lugar original, também com estrela preenchida. Favoritar não move o item | U1 × PERFIL-A, 2 favoritos pré-carregados | RN-CIU-028 |
| CT-E5-FAV-02 | U2 autenticado na Clínica Teste A (nenhum favorito) | Observar o topo do menu | Seção Favoritos não aparece (nem título, nem espaço vazio, nem mensagem). Busca logo no topo | U2 × PERFIL-A, sem favoritos | RN-CIU-028 |
| CT-E5-FAV-03 | Estado de CT-E5-FAV-02, Assistencial expandido | Tocar na estrela vazia de “PEP” | Estrela de PEP fica preenchida. Seção Favoritos aparece com “PEP”. PEP continua também no Assistencial | — | RN-CIU-028; CA-010.2 |
| CT-E5-FAV-04 | U1 na Clínica Teste A (favoritos: Agenda, Central) | Favoritar “PEP” e depois “Pacientes na Clínica Hoje” | Seção Favoritos, nesta ordem: Agenda do Médico, Central do Médico (Cockpit), Pacientes na Clínica Hoje, PEP. A ordem é alfabética pelo nome, não a ordem em que foram favoritados. Caso-limite: “Pacientes…” × “PEP” só fica nesta ordem se a comparação ignorar maiúsculas/minúsculas (ver Pendências de Massa de Dados, collation) | — | RN-CIU-028 |
| CT-E5-FAV-05 | U1 na Clínica Teste A, com “Agenda do Médico” nos Favoritos | Tocar na estrela preenchida de “Agenda do Médico” dentro da seção Favoritos | Agenda do Médico sai da seção Favoritos. Continua no Assistencial, agora com estrela vazia | — | RN-CIU-028; CA-010.3 |
| CT-E5-FAV-06 | U1 na Clínica Teste A, com “Central do Médico (Cockpit)” nos Favoritos, Assistencial expandido | Tocar na estrela preenchida de “Central do Médico (Cockpit)” no grupo Assistencial | Mesmo efeito de CT-E5-FAV-05: sai dos Favoritos e continua no grupo, com estrela vazia. Dá para desfavoritar dos dois lugares | — | 02-Especificação, Seção Favoritos |
| CT-E5-FAV-07 | Usuário com exatamente 1 favorito na clínica atual | Desfavoritar esse único item | A seção Favoritos inteira desaparece | — | RN-CIU-028 |
| CT-E5-FAV-08 | U2 na Clínica Teste A favorita “PEP” | Logout e login de novo na mesma clínica | ”PEP” continua nos Favoritos. O favorito fica gravado (ClienteUsuarioMenuFavorito) e não se perde ao fim da sessão, ao contrário da expansão de grupos | — | RN-CIU-028; 04-Mapeamento §4.2 |
| CT-E5-FAV-09 (BD) | U2 na Clínica Teste A, “PEP” não favoritado | Favoritar PEP → desfavoritar → favoritar de novo. Conferir ClienteUsuarioMenuFavorito | Existe uma única linha para o par (ClientePerfilAcessoUsuarioId de U2/A, ClientePerfilAcessoProcessoId de PEP), com RemovidoEm nulo. Desfavoritar marca RemovidoEm (exclusão lógica), sem apagar a linha. Refavoritar limpa RemovidoEm, sem criar uma segunda linha | — | RN-CIU-005 (guarda-chuva); 04-Mapeamento §4.2/4.3 |
| CT-E5-FAV-10 | U1 na Clínica Teste A (favoritos: Agenda, Central) | 1. Trocar para a Clínica Teste B (botão Trocar → E6). 2. Observar Favoritos. 3. Na B, favoritar “Prescrições Pendentes”. 4. Voltar para a Clínica Teste A | Na B: Favoritos mostra só “Mensagens”. Agenda e Central aparecem no Assistencial com estrela vazia. De volta à A: Favoritos mostra de novo Agenda e Central. “Prescrições Pendentes” não está favoritado na A | U1 × PERFIL-A / PERFIL-B | RN-CIU-028 (favoritos por vínculo × perfil × clínica); SBIS NGS1.03.07 |
| CT-E5-FAV-11 (API) | Token de U2 na Clínica Teste A | POST .../items/{id}/favorite usando: (a) o ClientePerfilAcessoProcessoId de “Protocolos” no PERFIL-A (ExibeMenu='N'); (b) um ClientePerfilAcessoProcessoId do PERFIL-B | 404 nos dois casos. Nenhuma linha criada em ClienteUsuarioMenuFavorito | — | 04-Mapeamento §4.2; SBIS NGS1.03.01 |
| CT-E5-FAV-12 (API) | Token de U2 na Clínica Teste A, “Repasses” não favoritado | DELETE .../items/{id de Repasses}/favorite | 404 (item não estava favoritado) | — | 02-Especificação, DELETE, Códigos |
| CT-E5-FAV-13 (API) | Token de U2 na Clínica Teste A, “PEP” não favoritado | POST .../items/{id de PEP}/favorite | 201, corpo { clientePerfilAcessoProcessoId, favorito: true }. Em seguida, DELETE no mesmo id: 200, { …, favorito: false } | — | 02-Especificação, Integração com Backend |
| CT-E5-FAV-14 (BD) — ver observação ⬇ | U1 na Clínica Teste A com “Agenda do Médico” favoritado | 1. Alterar ClientePerfilAcessoProcesso.ExibeMenu de “Agenda do Médico” (PERFIL-A) para 'N'. 2. Recarregar o menu. 3. Restaurar ao final | Esperado por RN-CIU-027 / NGS1.03.01: “Agenda do Médico” não aparece em lugar nenhum do menu, nem na seção Favoritos, nem nos ícones do menu recolhido. Ver observação: o filtro documentado hoje pode não garantir isso | — | RN-CIU-027, RN-CIU-028; SBIS NGS1.03.01 |
Observação — CT-E5-FAV-14 (achado ao redigir este documento, a confirmar): o filtro de
favoritos[]descrito em 04-Mapeamento de BD v1.5 §4.1 usa sóClienteUsuarioMenuFavorito.ClientePerfilAcessoUsuarioId+RemovidoEm IS NULL. Ele não repete os filtros deClientePerfilAcessoProcesso.ExibeMenu = 'S',ClientePerfilAcessoProcesso.RemovidoEm IS NULLnemClienteProcesso.RemovidoEm IS NULL, que valem paragrupos/itensSemGrupo. Se a implementação seguir o mapeamento ao pé da letra, um item favoritado e depois retirado do perfil continuaria aparecendo em Favoritos e no menu recolhido, contrariando RN-CIU-027 (“itens não liberados… não fazem parte da lista carregada”). Este caso de teste foi escrito com o resultado esperado pela regra de negócio. A divergência no Mapeamento de BD não foi corrigida aqui: é decisão do solicitante.
4. Busca
| ID | Pré-condição | Passos | Resultado Esperado | Dados de Teste | RN/CA Relacionada |
|---|---|---|---|---|---|
| CT-E5-BUSCA-01 | U2 na Clínica Teste A, todos os grupos recolhidos | Digitar “Agenda” no campo de busca, sem pressionar Enter | A lista vira uma lista “achatada”, sem grupos, mostrando só “Agenda do Médico”, mesmo com o Assistencial recolhido. O filtro age a cada caractere, sem confirmação | PERFIL-A | RN-CIU-030; CA-010.4 |
| CT-E5-BUSCA-02 | Mesmo estado | Digitar “Pac” | Aparecem “Pacientes na Clínica Hoje” (do Assistencial) e “Pacientes” (do Cadastros), ambos com os grupos recolhidos | PERFIL-A | RN-CIU-030; CA-010.4 |
| CT-E5-BUSCA-03 | Mesmo estado | Digitar “Proto” | Estado vazio com MSG-I5-02 (“Nenhum item encontrado. Tente limpar o filtro de busca.”). “Protocolos” existe como Processo, mas está com ExibeMenu='N' no PERFIL-A, e a busca nunca revela item não liberado | PERFIL-A (Protocolos ExibeMenu='N') | RN-CIU-030 (2º parágrafo); RN-CIU-027; SBIS NGS1.03.01 |
| CT-E5-BUSCA-04 | Mesmo estado | Digitar “xyz” | Estado vazio com MSG-I5-02 | — | RN-CIU-030; EX-E5-02 |
| CT-E5-BUSCA-05 | U2 na Clínica Teste A, Cadastros expandido, demais recolhidos | Digitar “Agenda”; depois apagar todo o texto | Durante a busca: lista achatada. Após limpar: volta a exibição normal com Cadastros expandido e os demais recolhidos (estado anterior à busca) | — | 02-Especificação, Busca |
| CT-E5-BUSCA-06 | U2 na Clínica Teste A, devtools aberto na aba Rede | Digitar “Pacientes” caractere a caractere | Nenhuma requisição de rede nova enquanto digita. Só o GET /api/v1/menu inicial | — | 02-Especificação, Integração com Backend (nota sobre a busca) |
| CT-E5-BUSCA-07 | U2 na Clínica Teste A, campo vazio | Observar o campo de busca | Placeholder “Buscar no menu” (MSG-P5-01). Campo posicionado abaixo da seção Favoritos (quando existe) e acima dos grupos | — | 02-Especificação, Busca; 03-Protótipo v1.5/v1.6 |
| CT-E5-BUSCA-08 — resultado a definir | U2 na Clínica Teste A | Digitar (a) “agenda” (minúsculas); (b) “medico” (sem acento) | Não definido pela Especificação. RN-CIU-030 diz só “filtra os itens pelo nome”, sem tratar maiúsculas/minúsculas nem acentos. Para referência, não normativa, o Protótipo v1.6 ignora maiúsculas/minúsculas ((a) encontra “Agenda do Médico”) mas não ignora acentos ((b) não encontra nada). Resultado esperado pendente de decisão do solicitante | — | RN-CIU-030 (lacuna) |
5. Comportamento Responsivo
| ID | Pré-condição | Passos | Resultado Esperado | Dados de Teste | RN/CA Relacionada |
|---|---|---|---|---|---|
| CT-E5-RESP-01 | U1 na Clínica Teste A, desktop | Abrir o sistema | Menu expandido (padrão), em faixa lateral fixa, com o conteúdo principal ocupando o resto da tela | — | RN-CIU-029 |
| CT-E5-RESP-02 | Estado de CT-E5-RESP-01 (favoritos: Agenda, Central) | Acionar o controle de recolher | Menu vira coluna estreita com só os ícones de Agenda do Médico e Central do Médico (Cockpit). Grupos, busca, nome da clínica e botão Trocar somem. No cabeçalho fica só o indicador visual (círculo). O conteúdo principal se redimensiona e ocupa o espaço liberado | U1 × PERFIL-A | RN-CIU-029; CA-010.7 |
| CT-E5-RESP-03 | Menu recolhido (CT-E5-RESP-02) | Clicar no ícone de “Agenda do Médico” | Navega direto para a rota da Agenda do Médico, sem expandir o menu | — | RN-CIU-029 |
| CT-E5-RESP-04 | Desktop | Observar a posição do controle de recolher/expandir nos dois estados | O controle fica fora do menu, na mesma posição fixa nos dois estados, sem se deslocar e sem cobrir o nome da clínica quando expandido | — | 02-Especificação, Comportamento Responsivo; 03-Protótipo v1.3 |
| CT-E5-RESP-05 | Menu recolhido | Acionar o controle de expandir | Menu volta ao estado expandido, com grupos, busca, cabeçalho completo e Favoritos | — | RN-CIU-029 |
| CT-E5-RESP-06 — resultado a definir | U2 na Clínica Teste A (nenhum favorito), desktop | Recolher o menu | Não definido pela Especificação. Pela leitura literal de RN-CIU-029 (“recolhido, exibe apenas os ícones dos itens favoritados”), a coluna ficaria sem nenhum ícone de navegação, só com o indicador da clínica. Isso é uma inferência deste documento, não uma regra confirmada. Pendente de confirmação do solicitante | U2 × PERFIL-A | RN-CIU-029 (lacuna) |
| CT-E5-RESP-07 | U1 na Clínica Teste A, mobile | Abrir o sistema; tocar no ícone de abertura do menu na barra superior | Antes de abrir: menu oculto, barra superior mostrando o nome “Clínica Teste A” sem o indicador visual. Ao tocar: o menu abre como camada sobre o conteúdo, com fundo semitransparente, sem redimensionar o conteúdo por baixo | — | RN-CIU-029; CA-010.8; 02-Especificação, Cabeçalho do Menu |
| CT-E5-RESP-08 | Menu aberto no mobile | Tocar em um item (ex.: “Central do Médico (Cockpit)“) | Menu fecha e o sistema navega para a rota do item | — | RN-CIU-029 |
| CT-E5-RESP-09 | Menu aberto no mobile | Tocar fora do menu (na camada de fundo) | Menu fecha e o conteúdo aparece como estava, sem navegar | — | RN-CIU-029 |
| CT-E5-RESP-10 | Mobile | Procurar o controle de recolher/expandir | Não existe: no mobile não há estado recolhido/expandido, só oculto/aberto | — | RN-CIU-029 |
Nota sobre a largura de corte desktop/mobile: a 02-Especificação define os dois modos só como “largura suficiente/insuficiente para o menu ao lado do conteúdo”, sem valor numérico. O Protótipo v1.6 usa 960px (
@media (min-width: 960px)). Use esse valor como referência de teste até haver definição normativa.
6. Cabeçalho, Botão Trocar e Rodapé
| ID | Pré-condição | Passos | Resultado Esperado | Dados de Teste | RN/CA Relacionada |
|---|---|---|---|---|---|
| CT-E5-CAB-01 | U2 na Clínica Teste A, desktop expandido | Observar o topo do menu | Indicador visual (círculo colorido) + nome “Clínica Teste A” | ClienteEmpresa.Nome | 02-Especificação, Cabeçalho do Menu |
| CT-E5-CAB-02 | U2 (1 clínica acessível) | Observar o cabeçalho do menu | Botão “Trocar” não aparece | U2 | RN-CIU-009 (E1); CA-010.5 |
| CT-E5-CAB-03 | U1 (2 clínicas acessíveis) na Clínica Teste A | Observar o cabeçalho; tocar em “Trocar” | Botão compacto com ícone + rótulo “Trocar” (MSG-B5-02), ao lado do nome da clínica, em fonte menor que o resto do cabeçalho. Ao tocar: vai para a tela de seleção de clínica (E6) | U1 | RN-CIU-009 (E1); CA-010.6 |
| CT-E5-CAB-04 | Continuação de CT-E5-CAB-03, na tela do E6 | Selecionar “Clínica Teste B” | O menu é reconstruído do zero: cabeçalho “Clínica Teste B”, grupos só Assistencial e Mensageria (PERFIL-B), todos recolhidos, Favoritos só com “Mensagens”. Nada da Clínica A permanece | U1 × PERFIL-B | RN-CIU-028; SBIS NGS1.03.07 |
| CT-E5-CAB-05 | U1 na Clínica Teste B | Recarregar a página no navegador (F5) | O cabeçalho continua mostrando “Clínica Teste B” (nome vindo de clinicaAtual, sem depender de dado guardado desde o login/E6) | Depende de clinicaAtual [PROPOSTA] (ver Pendências) | 02-Especificação, GET /api/v1/menu |
| CT-E5-CAB-06 | Qualquer usuário, desktop expandido ou mobile aberto | Observar a base do menu; tentar clicar no texto | Rodapé fixo “Powered by Interprocess TI” (MSG-T5-01), sem link e sem ação ao clicar | — | RN-CIU-026; MSG-T5-01 |
7. Estados de Exceção e Falhas (Transversal)
Os casos CT-E5-SIS-02 a 05 exigem simular falha de endpoint. Isso não depende da massa: ver Pendências de Massa de Dados.
| ID | Pré-condição | Passos | Resultado Esperado | Dados de Teste | RN/EX Relacionada |
|---|---|---|---|---|---|
| CT-E5-SIS-01 | Resposta de GET /api/v1/menu propositalmente lenta | Autenticar e observar o menu durante a carga | Skeleton no lugar da árvore. Busca e Favoritos não aparecem enquanto carrega | — | 02-Especificação, Mapeamento de Componentes (Skeleton); 03-Protótipo v1.6 |
| CT-E5-SIS-02 | GET /api/v1/menu simulando falha (500) | Autenticar | Estado de erro no lugar do menu: MSG-E5-03 (“Não foi possível carregar o menu. Tente novamente.”) + botão “Tentar novamente” (MSG-B5-01). Sem árvore, sem Favoritos, sem busca | — | EX-E5-04 |
| CT-E5-SIS-03 | Estado de CT-E5-SIS-02; endpoint restabelecido | Tocar em “Tentar novamente” | Menu carrega normalmente (estado de CT-E5-EST-01 / CT-E5-FAV-01, conforme o usuário) | — | EX-E5-04 |
| CT-E5-SIS-04 | U2 na Clínica Teste A; POST .../favorite simulando falha | Tocar na estrela vazia de “PEP” | A estrela mostra o estado de carregamento durante a requisição e depois volta a vazia. Toast de erro MSG-E5-01 (“Não foi possível atualizar seus favoritos. Tente novamente.”). Favoritos não muda | — | EX-E5-03 |
| CT-E5-SIS-05 | U1 na Clínica Teste A; DELETE .../favorite simulando falha | Tocar na estrela preenchida de “Agenda do Médico” | A estrela volta a preenchida, Agenda do Médico continua nos Favoritos, toast MSG-E5-01 | — | EX-E5-03 |
| CT-E5-SIS-06 (API) | Sem token de sessão | Chamar GET /api/v1/menu | 401 | — | 02-Especificação, GET /api/v1/menu, Códigos |
8. Idioma e Mensagens
| ID | Pré-condição | Passos | Resultado Esperado | RN/SBIS Relacionada |
|---|---|---|---|---|
| CT-E5-MSG-01 | Interface em pt-BR | Provocar cada estado do catálogo durante a execução das Seções 2-7 e conferir o texto exibido | Cada texto bate exatamente com o catálogo da 02-Especificação v1.5: MSG-E5-01, MSG-E5-03, MSG-I5-01, MSG-I5-02, MSG-P5-01, MSG-T5-01, MSG-B5-01 (“Tentar novamente”), MSG-B5-02 (“Trocar”). Nenhum termo técnico (nome de tabela, código HTTP, stack trace) visível ao usuário | SBIS ECF.17.18, ECF.17.19 |
| CT-E5-MSG-02 | Interface em pt-BR | Percorrer todos os rótulos do menu (grupos, itens, botões, cabeçalho) | Todos em português do Brasil | SBIS ECF.17.18 |
Nota sobre en-US/es-419: o catálogo traz as 3 línguas, mas o mecanismo de troca de idioma não é especificado neste épico. Os textos em en-US/es-419 não têm CT até esse mecanismo ser definido em algum documento.
9. Matriz de Rastreabilidade
| Área | Casos | RN cobertas | CA / EX cobertos | SBIS | Cobertura |
|---|---|---|---|---|---|
| Estrutura e filtragem | CT-E5-EST-01 a 11 | RN-CIU-026, 027 | CA-010.1, CA-010.9; EX-E5-01 | NGS1.03.01, NGS1.03.03 | Caminho feliz, ordem por perfil, item sem grupo (massa inventada), ExibeMenu='N', perfil vazio. Tudo depende da massa proposta |
| Favoritos | CT-E5-FAV-01 a 14 | RN-CIU-028, RN-CIU-005 | CA-010.2, CA-010.3 | NGS1.03.01, NGS1.03.07 | Caminho feliz, ordem alfabética (caso-limite de collation), favoritos por clínica, exclusão lógica/reativação, 404. FAV-14 depende de decisão sobre o filtro de favoritos[] (ver observação na Seção 3) |
| Busca | CT-E5-BUSCA-01 a 08 | RN-CIU-030, 027 | CA-010.4; EX-E5-02 | NGS1.03.01 | Caminho feliz, não revelação de item oculto, estado vazio, restauração do estado dos grupos, ausência de chamada de rede. BUSCA-08 (maiúsculas/acentos) sem resultado esperado definido |
| Responsivo | CT-E5-RESP-01 a 10 | RN-CIU-029 | CA-010.7, CA-010.8 | — | Desktop expandido/recolhido e mobile overlay completos. RESP-06 (recolhido sem favoritos) sem resultado esperado definido. Largura de corte só no Protótipo (960px) |
| Cabeçalho, Trocar e Rodapé | CT-E5-CAB-01 a 06 | RN-CIU-026, 028; RN-CIU-009 (E1) | CA-010.5, CA-010.6 | NGS1.03.07 | Completo. CAB-05 depende de clinicaAtual [PROPOSTA] |
| Exceções e falhas | CT-E5-SIS-01 a 06 | — | EX-E5-03, EX-E5-04 | — | Os 4 EX deste épico cobertos (EX-E5-01 em EST-10, EX-E5-02 em BUSCA-04). SIS-02 a 05 exigem mecanismo de simulação de falha a definir pela QA |
| Idioma e mensagens | CT-E5-MSG-01, 02 | — | — | ECF.17.18, ECF.17.19 | Só pt-BR. en-US/es-419 sem mecanismo especificado |
Cobertura dos critérios de aceitação: 9/9 (CA-010.1 a CA-010.9). Fluxos de exceção: 4/4 (EX-E5-01 a EX-E5-04). Requisitos SBIS do épico: 5/5.
Não coberto, por decisão de escopo: tela inicial (ProcessoAbertura/CodProfissional, ver Seção 1); volume/desempenho (a Especificação não define limite de itens nem meta de tempo de carga); concorrência (o mesmo usuário favoritando o mesmo item em duas abas ou dispositivos ao mesmo tempo, não especificado).
Lacunas de especificação identificadas ao redigir este documento (nenhuma corrigida nos documentos 01-04, todas para decisão do solicitante):
- Busca: tratamento de maiúsculas/minúsculas e acentos (CT-E5-BUSCA-08).
- Menu recolhido sem nenhum favorito (CT-E5-RESP-06).
- Filtro de
favoritos[]no 04-Mapeamento §4.1 não exclui itens retirados do perfil (CT-E5-FAV-14). - Comportamento da seção Favoritos durante uma busca ativa: a Especificação não diz se ela é filtrada, ocultada ou mantida. Sem CT até haver definição.
- Grupo cujos itens estão todos sem liberação (
ExibeMenu='N'): a Especificação não diz se o grupo aparece vazio ou some. Inferência deste documento, não confirmada: comogruposé montado a partir dos itens liberados (04-Mapeamento §4.1), o grupo não deveria aparecer. Sem CT até haver confirmação. - Comportamento da interface ao receber 401 de
GET /api/v1/menu(sessão expirada): fora deste épico (E1). Só o código HTTP é testado (CT-E5-SIS-06).
10. Histórico de Versões
- v1.0 (05/10/2026) — Versão inicial, a pedido do solicitante (“crie os Cenários de testes do Épico 5”, tomando como modelo o Cenários de Teste da Central do Médico v1.26). Até esta versão, nenhum épico do Check-in de Usuários tinha documento de cenários de teste. Construído a partir de 01-Definição v1.7, 02-Especificação v1.5, 03-Protótipo v1.6 (.md e .html) e 04-Mapeamento de BD v1.5. Cada caso cita a RN, CA, EX ou seção de onde veio; nenhuma regra nova foi criada.
- Massa de dados: não existe massa de teste para este épico. A massa da Seção 1 é [PROPOSTA]: árvore de exemplo do Protótipo v1.6 + 1 item sem grupo inventado (“Item Sem Grupo (teste)”) + 3 usuários (U1 multi-clínica, U2 clínica única, U3 perfil vazio) + 3 perfis (PERFIL-A, PERFIL-B com ordem invertida, PERFIL-VAZIO) + 2 clínicas. Todos os nomes são rótulos deste documento, não registros reais. Precisa ser criada e confirmada antes da execução.
- 57 casos em 7 áreas: Estrutura e filtragem (11), Favoritos (14), Busca (8), Responsivo (10), Cabeçalho/Trocar/Rodapé (6), Exceções e falhas (6), Idioma e mensagens (2). Cobertura: 9/9 CA, 4/4 EX, 5/5 requisitos SBIS.
- Valores não normativos usados como referência: largura de corte desktop/mobile de 960px e comportamento da busca (ignora maiúsculas/minúsculas, não ignora acentos), ambos lidos do código do Protótipo v1.6, porque a Especificação não define. Ficam sinalizados como referência, não como regra.
- Achado registrado (CT-E5-FAV-14): o filtro de
favoritos[]no 04-Mapeamento de BD v1.5 §4.1 não repete os filtros de liberação (ExibeMenu,RemovidoEmdeClientePerfilAcessoProcesso/ClienteProcesso) aplicados agrupos/itensSemGrupo. Isso pode permitir que um favorito de item retirado do perfil continue visível, contrariando RN-CIU-027. O Mapeamento não foi alterado; o caso foi escrito com o resultado esperado pela regra de negócio. - 5 outras lacunas de especificação listadas ao final da Seção 9 (busca × maiúsculas/acentos, recolhido sem favoritos, Favoritos durante busca, grupo sem itens liberados, tratamento de 401 na interface). Os casos correspondentes ficam marcados “resultado a definir” ou sem CT.
- Revisão por Dois Críticos: não aplicável. É cobertura de teste para comportamento já especificado, sem decisão de modelagem nova.