Este repositório contém a automação E2E do fluxo completo de agendamento da plataforma QuarkClinic, desenvolvida como parte da atividade prática do processo seletivo para a vaga de QA – Automação.
Os testes cobrem:
- Cadastro de novo usuário
- Login de usuário existente
- Agendamento de consulta presencial
- Envio de comprovante de pagamento
O projeto valida, de ponta a ponta, o fluxo real de um paciente dentro do sistema:
- criação de conta
- autenticação
- seleção do tipo de consulta
- escolha de convênio, especialidade, clínica e horário
- envio de comprovante de pagamento
Os testes utilizam boas práticas essenciais, como:
- seletor data-cy
- interceptação de requisições
- waits baseados em API
- upload de arquivo
- validações de URL e mensagens
- Cypress
- JavaScript
- Node.js
- NPM
qa-esig/
cypress/
e2e/
testes.cy.js
fixtures/
Notas-fiscais.jpg
support/
commands.js
e2e.js
cypress.config.js
package.json
README.md
Ao selecionar o convênio “PARTICULAR”, o sistema realiza automaticamente:
- busca das especialidades
- navegação para clínica
Isso acontece porque a API retorna apenas uma opção disponível no momento, e o sistema avança sozinho para a próxima etapa.
O teste valida apenas a navegação:
cy.url().should("include", "/especialidade")
cy.url().should("include", "/clinica")
Os horários mudam constantemente, então o teste usa:
cy.get('[data-cy^="agenda-item-horario-"]:visible', { timeout: 15000 })
.first()
.click({ force: true })
Isso garante que:
- sempre haverá um horário selecionável
- o teste não depende de datas fixas
- a execução acompanha a agenda real da clínica
- abre modal
- preenche os campos
- cria conta
- valida área logada
- abre modal
- preenche email e senha
- intercepta e valida login
- seleciona convênio
- sistema avança sozinho para especialidade e clínica
- seleciona primeiro horário disponível
- seleciona paciente
- confirma dados
- envia agendamento
- acessa tela de pagamento
- faz upload
- insere observação
- envia formulário
- valida mensagem
npm install
Modo interativo:
npx cypress open
Modo headless:
npx cypress run
cypress/e2e/testes.cy.js
Wesley Costa