Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Cy.Session retorna ao login

Estou executando alguns teste na minha aplicação, e quando utilizo o cy.session ele faz o login, porém me retorna para tela da aplicação em vez de ficar logado segue trecho do código

// Faz login no ponto de controle protegendo os dados do sistema
Cypress.Commands.add("login", () =>{
  const username = Cypress.env("username");
  const password = Cypress.env("password"); 
 
  cy.session([username, password], () => {
    cy.visit("127.0.0.1:4000");
    cy.get("input.app-input[name=\"username\"]").type(username);
    cy.get("input.app-input[name=\"password\"]").type(password, {log:false});
    cy.get("form > .flex > .shadow-material").should("be.visible").click();
  });
});

describe("Validar todas as informações do menu motorista", () =>{
  beforeEach(() =>{
    cy.login();
    cy.visit("/ ")
  });

  context("Fazer a verificação se as informações que foram marcadas como obrigatório e ativos, estão sendo executadas corretamente", () => {
    it("Valida o redirencionamento", () =>{
    cy.get('a[href="/cadastros"]').should('have.attr', 'href', '/cadastros').click();
    cy.get('li[href="/cadastros/motoristas"]').should('have.attr', 'href', '/cadastros/motoristas').should('be.visible').click();
    cy.url().should('include', '/cadastros/motoristas');
      
    });
    it("Cadastro", () =>{
      
    })
  });
});

Tentei achar uma solução para isso, mas não consegui

1 resposta
solução!

Olá Alisson! Tudo bem?

Analisando o código que você passou, o cy.session está sendo utilizado corretamente para armazenar a sessão de login. No entanto, você mencionou que, após o login, a aplicação retorna para a tela inicial em vez de permanecer logada. Isso pode estar acontecendo por alguns motivos. Vamos explorar algumas possibilidades:

  1. Verifique o Redirecionamento Após o Login: certifique-se de que, após o login, a aplicação está redirecionando para a página correta. No exemplo que você forneceu, não há uma verificação explícita de que a página foi redirecionada corretamente após o login. Você pode adicionar uma assertiva para verificar isso, como:

    cy.location('pathname').should('eq', '/pagina-esperada')
    

    Substitua '/pagina-esperada' pelo caminho que você espera que a aplicação esteja após o login bem-sucedido.

  2. Cookies e Local Storage: verifique se os cookies ou o local storage estão sendo mantidos corretamente após o login. O cy.session deve cuidar disso, mas é bom verificar se a aplicação não está limpando essas informações por algum motivo.

Espero que essas dicas ajudem a resolver o problema.

Bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.