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.ProcessoAbertura e cockpit padrão via ClientePerfilAcessoUsuario.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, e CodProfissional ainda 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)

EndpointUso
GET /api/v1/menuCarga da árvore, favoritos e clinicaAtual
POST /api/v1/menu/items/{clientePerfilAcessoProcessoId}/favoriteFavoritar
DELETE /api/v1/menu/items/{clientePerfilAcessoProcessoId}/favoriteDesfavoritar

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)
AssistencialCentral do Médico (Cockpit)stethoscope
AssistencialAgenda do Médicocalendar
AssistencialPEPfile-text
AssistencialPrescrições Pendentesclipboard-list
AssistencialPacientes na Clínica Hojeusers
FinanceiroRepassescoins
CadastrosProtocoloslist-checks
CadastrosPacientesuser-plus
MensageriaMensagensmessage-circle
(sem grupo — ProcessoGrupoId nulo)Item Sem Grupo (teste) — inventado para este documentocircle

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, com ExibeMenu='N'. Ordem dentro 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 ClientePerfilAcessoProcesso com ExibeMenu='S'.

Usuários (ClientePerfilAcessoUsuario, RemovidoEm nulo):

UsuárioClínica Teste AClínica Teste BClínicas acessíveisFavoritos pré-carregados (ClienteUsuarioMenuFavorito, RemovidoEm nulo)
U1 (multi-clínica)PERFIL-APERFIL-B2Na A: Central do Médico (Cockpit), Agenda do Médico. Na B: Mensagens
U2 (clínica única)PERFIL-A—1Nenhum
U3 (perfil sem itens)PERFIL-VAZIO—1Nenhum

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 Processo artificial, 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 clinicaAtual na resposta de GET /api/v1/menu, ainda marcado [PROPOSTA] na 02-Especificação v1.5.

2. Estrutura e Filtragem por Perfil de Acesso

IDPré-condiçãoPassosResultado EsperadoDados de TesteRN/CA Relacionada
CT-E5-EST-01U2 autenticado na Clínica Teste A, desktopObservar o menu logo após o carregamentoAparecem 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 itensPERFIL-ARN-CIU-026; 01-Definição, Premissas
CT-E5-EST-02Mesmo estado de CT-E5-EST-01Tocar 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 recolhidosPERFIL-A, Ordem 1-5RN-CIU-026, RN-CIU-027; CA-010.9
CT-E5-EST-03Assistencial 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 expandidoPERFIL-A (Protocolos com ExibeMenu='N')RN-CIU-026, RN-CIU-027; CA-010.1, CA-010.9
CT-E5-EST-04U1 autenticado na Clínica Teste BExpandir “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 aparecemPERFIL-BRN-CIU-027 (ordem por perfil); CA-010.1
CT-E5-EST-05U2 na Clínica Teste AObservar a posição de “Item Sem Grupo (teste)“O item aparece direto na lista principal, fora de qualquer grupo, visível sem expandir nadaProcesso.ProcessoGrupoId nulo (item inventado, ver Pendências)RN-CIU-026
CT-E5-EST-06U2 na Clínica Teste A, desktop, Assistencial expandidoTocar em “Agenda do Médico”Navega para a rota do item (Processo.Rota). O item fica destacado como ativo (rota atual) no menuPERFIL-A02-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 AChamar GET /api/v1/menu e inspecionar a resposta200. 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-endPERFIL-ARN-CIU-027; SBIS NGS1.03.01
CT-E5-EST-08 (BD)U2 na Clínica Teste A, menu carregado com “Pacientes” visível em Cadastros1. 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 finalApós recarregar, “Pacientes” não aparece mais em Cadastros. A mudança de configuração do perfil vale a partir do próximo carregamentoPERFIL-ARN-CIU-027; SBIS NGS1.03.03
CT-E5-EST-09U2 na Clínica Teste A, desktop, com Assistencial e Cadastros expandidos e o menu recolhidoEncerrar a sessão (logout) e autenticar de novoMenu 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-10U3 autenticado na Clínica Teste AObservar o menuMenu 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 aparecePERFIL-VAZIORN-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 AChamar GET /api/v1/menu200 (não erro), com grupos, itensSemGrupo e favoritos vaziosPERFIL-VAZIO02-Especificação, GET /api/v1/menu, Códigos

3. Favoritos

IDPré-condiçãoPassosResultado EsperadoDados de TesteRN/CA Relacionada
CT-E5-FAV-01U1 autenticado na Clínica Teste AObservar o topo do menu; expandir AssistencialSeçã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 itemU1 × PERFIL-A, 2 favoritos pré-carregadosRN-CIU-028
CT-E5-FAV-02U2 autenticado na Clínica Teste A (nenhum favorito)Observar o topo do menuSeção Favoritos não aparece (nem título, nem espaço vazio, nem mensagem). Busca logo no topoU2 × PERFIL-A, sem favoritosRN-CIU-028
CT-E5-FAV-03Estado de CT-E5-FAV-02, Assistencial expandidoTocar 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-04U1 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-05U1 na Clínica Teste A, com “Agenda do Médico” nos FavoritosTocar na estrela preenchida de “Agenda do Médico” dentro da seção FavoritosAgenda do Médico sai da seção Favoritos. Continua no Assistencial, agora com estrela vazia—RN-CIU-028; CA-010.3
CT-E5-FAV-06U1 na Clínica Teste A, com “Central do Médico (Cockpit)” nos Favoritos, Assistencial expandidoTocar na estrela preenchida de “Central do Médico (Cockpit)” no grupo AssistencialMesmo 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-07Usuário com exatamente 1 favorito na clínica atualDesfavoritar esse único itemA seção Favoritos inteira desaparece—RN-CIU-028
CT-E5-FAV-08U2 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 favoritadoFavoritar PEP → desfavoritar → favoritar de novo. Conferir ClienteUsuarioMenuFavoritoExiste 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-10U1 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 ANa 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 AU1 × PERFIL-A / PERFIL-BRN-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 APOST .../items/{id}/favorite usando: (a) o ClientePerfilAcessoProcessoId de “Protocolos” no PERFIL-A (ExibeMenu='N'); (b) um ClientePerfilAcessoProcessoId do PERFIL-B404 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 favoritadoDELETE .../items/{id de Repasses}/favorite404 (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 favoritadoPOST .../items/{id de PEP}/favorite201, 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” favoritado1. Alterar ClientePerfilAcessoProcesso.ExibeMenu de “Agenda do Médico” (PERFIL-A) para 'N'. 2. Recarregar o menu. 3. Restaurar ao finalEsperado 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 de ClientePerfilAcessoProcesso.ExibeMenu = 'S', ClientePerfilAcessoProcesso.RemovidoEm IS NULL nem ClienteProcesso.RemovidoEm IS NULL, que valem para grupos/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

IDPré-condiçãoPassosResultado EsperadoDados de TesteRN/CA Relacionada
CT-E5-BUSCA-01U2 na Clínica Teste A, todos os grupos recolhidosDigitar “Agenda” no campo de busca, sem pressionar EnterA 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çãoPERFIL-ARN-CIU-030; CA-010.4
CT-E5-BUSCA-02Mesmo estadoDigitar “Pac”Aparecem “Pacientes na Clínica Hoje” (do Assistencial) e “Pacientes” (do Cadastros), ambos com os grupos recolhidosPERFIL-ARN-CIU-030; CA-010.4
CT-E5-BUSCA-03Mesmo estadoDigitar “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 liberadoPERFIL-A (Protocolos ExibeMenu='N')RN-CIU-030 (2º parágrafo); RN-CIU-027; SBIS NGS1.03.01
CT-E5-BUSCA-04Mesmo estadoDigitar “xyz”Estado vazio com MSG-I5-02—RN-CIU-030; EX-E5-02
CT-E5-BUSCA-05U2 na Clínica Teste A, Cadastros expandido, demais recolhidosDigitar “Agenda”; depois apagar todo o textoDurante 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-06U2 na Clínica Teste A, devtools aberto na aba RedeDigitar “Pacientes” caractere a caractereNenhuma 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-07U2 na Clínica Teste A, campo vazioObservar o campo de buscaPlaceholder “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 definirU2 na Clínica Teste ADigitar (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

IDPré-condiçãoPassosResultado EsperadoDados de TesteRN/CA Relacionada
CT-E5-RESP-01U1 na Clínica Teste A, desktopAbrir o sistemaMenu expandido (padrão), em faixa lateral fixa, com o conteúdo principal ocupando o resto da tela—RN-CIU-029
CT-E5-RESP-02Estado de CT-E5-RESP-01 (favoritos: Agenda, Central)Acionar o controle de recolherMenu 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 liberadoU1 × PERFIL-ARN-CIU-029; CA-010.7
CT-E5-RESP-03Menu 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-04DesktopObservar a posição do controle de recolher/expandir nos dois estadosO 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-05Menu recolhidoAcionar o controle de expandirMenu volta ao estado expandido, com grupos, busca, cabeçalho completo e Favoritos—RN-CIU-029
CT-E5-RESP-06 — resultado a definirU2 na Clínica Teste A (nenhum favorito), desktopRecolher o menuNã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 solicitanteU2 × PERFIL-ARN-CIU-029 (lacuna)
CT-E5-RESP-07U1 na Clínica Teste A, mobileAbrir o sistema; tocar no ícone de abertura do menu na barra superiorAntes 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-08Menu aberto no mobileTocar 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-09Menu aberto no mobileTocar fora do menu (na camada de fundo)Menu fecha e o conteúdo aparece como estava, sem navegar—RN-CIU-029
CT-E5-RESP-10MobileProcurar o controle de recolher/expandirNã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é

IDPré-condiçãoPassosResultado EsperadoDados de TesteRN/CA Relacionada
CT-E5-CAB-01U2 na Clínica Teste A, desktop expandidoObservar o topo do menuIndicador visual (círculo colorido) + nome “Clínica Teste A”ClienteEmpresa.Nome02-Especificação, Cabeçalho do Menu
CT-E5-CAB-02U2 (1 clínica acessível)Observar o cabeçalho do menuBotão “Trocar” não apareceU2RN-CIU-009 (E1); CA-010.5
CT-E5-CAB-03U1 (2 clínicas acessíveis) na Clínica Teste AObservar 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)U1RN-CIU-009 (E1); CA-010.6
CT-E5-CAB-04Continuação de CT-E5-CAB-03, na tela do E6Selecionar “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 permaneceU1 × PERFIL-BRN-CIU-028; SBIS NGS1.03.07
CT-E5-CAB-05U1 na Clínica Teste BRecarregar 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-06Qualquer usuário, desktop expandido ou mobile abertoObservar a base do menu; tentar clicar no textoRodapé 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.

IDPré-condiçãoPassosResultado EsperadoDados de TesteRN/EX Relacionada
CT-E5-SIS-01Resposta de GET /api/v1/menu propositalmente lentaAutenticar e observar o menu durante a cargaSkeleton 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-02GET /api/v1/menu simulando falha (500)AutenticarEstado 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-03Estado de CT-E5-SIS-02; endpoint restabelecidoTocar 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-04U2 na Clínica Teste A; POST .../favorite simulando falhaTocar 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-05U1 na Clínica Teste A; DELETE .../favorite simulando falhaTocar 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ãoChamar GET /api/v1/menu401—02-Especificação, GET /api/v1/menu, Códigos

8. Idioma e Mensagens

IDPré-condiçãoPassosResultado EsperadoRN/SBIS Relacionada
CT-E5-MSG-01Interface em pt-BRProvocar cada estado do catálogo durante a execução das Seções 2-7 e conferir o texto exibidoCada 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árioSBIS ECF.17.18, ECF.17.19
CT-E5-MSG-02Interface em pt-BRPercorrer todos os rótulos do menu (grupos, itens, botões, cabeçalho)Todos em português do BrasilSBIS 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

ÁreaCasosRN cobertasCA / EX cobertosSBISCobertura
Estrutura e filtragemCT-E5-EST-01 a 11RN-CIU-026, 027CA-010.1, CA-010.9; EX-E5-01NGS1.03.01, NGS1.03.03Caminho feliz, ordem por perfil, item sem grupo (massa inventada), ExibeMenu='N', perfil vazio. Tudo depende da massa proposta
FavoritosCT-E5-FAV-01 a 14RN-CIU-028, RN-CIU-005CA-010.2, CA-010.3NGS1.03.01, NGS1.03.07Caminho 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)
BuscaCT-E5-BUSCA-01 a 08RN-CIU-030, 027CA-010.4; EX-E5-02NGS1.03.01Caminho 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
ResponsivoCT-E5-RESP-01 a 10RN-CIU-029CA-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 06RN-CIU-026, 028; RN-CIU-009 (E1)CA-010.5, CA-010.6NGS1.03.07Completo. CAB-05 depende de clinicaAtual [PROPOSTA]
Exceções e falhasCT-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 mensagensCT-E5-MSG-01, 02——ECF.17.18, ECF.17.19Só 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):

  1. Busca: tratamento de maiúsculas/minúsculas e acentos (CT-E5-BUSCA-08).
  2. Menu recolhido sem nenhum favorito (CT-E5-RESP-06).
  3. Filtro de favoritos[] no 04-Mapeamento §4.1 não exclui itens retirados do perfil (CT-E5-FAV-14).
  4. 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.
  5. 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: como grupos é montado a partir dos itens liberados (04-Mapeamento §4.1), o grupo não deveria aparecer. Sem CT até haver confirmação.
  6. 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, RemovidoEm de ClientePerfilAcessoProcesso/ClienteProcesso) aplicados a grupos/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.