1
resposta

O nome que retornou no meu código foi "Ana de Jesus" e não "camila"

Primeiramente, já informo que se eu simplesmente copiar e colar a resposta do instrutor no meu vscode o teste vai passar perfeitamente.

Porém ao fazer do zero aqui usando a DevTools usando as informações de login com:

email: ana@email.com senha: Senha123

E ao acessar a página: https://adopet-frontend-cypress.vercel.app/perfil já da pra ver que o nome que tá escrito lá na interface gráfica é o Ana de Jesus.

Segue abaixo meu código:

describe("More exercises testing some API responses", () => {
    const authorization = `Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMTY0M2NkNi03MTEyLTQxNWItOTVkMi0wNzkwNGIwZDFhMWMiLCJhZG9wdGVyTmFtZSI6IkFuYSBkZSBKZXN1cyIsImlhdCI6MTcyMjYzOTkzNSwiZXhwIjoxNzIyODk5MTM1fQ.dxuTOIHLpI3IZzo_hwhOMx9h5U_j8JAH6OjF11ThOq8`;

    it("Checks if the profile name on the API corresponds to: camila", () => {
        cy.request({
            method: "GET",
            url: "https://adopet-api-i8qu.onrender.com/adotante/perfil/11643cd6-7112-415b-95d2-07904b0d1a1c",
            headers: { authorization },
        }).then(res => {
            expect(res.body.perfil.nome).to.be.equal("camila");
        });
    });
});

Bem, eu já testei bastante esse código e descobri que a discrepância é causada na linha:

url: "https://adopet-api-i8qu.onrender.com/adotante/perfil/11643cd6-7112-415b-95d2-07904b0d1a1c",

Se eu manter todo o código igual como descrito acima e trocar apenas essa linha com a url contida na resolução do instrutor o teste vai passar. O teste também irá passar se eu mudar a string do nome de "camila" para "Ana de Jesus"

Dito tudo isso, peço perdão por me estender demais na elaboração pois eu compreendo perfeitamente o que está acontecendo acima, mas minha dúvida é apenas se eu não prestei atenção em alguma coisa e não vi que as informações de login deveriam ser as do usuário camila, ou se eu consultei a informação errada no DevTools e o teste passaria com a string "camila" independente do usuário de login utilizados.

Grato, Erike.

1 resposta

Oi Erike! Tudo bem?

No seu código, você está utilizando o token de autorização que corresponde ao usuário "Ana de Jesus". Isso é evidenciado pelo conteúdo do token JWT que você forneceu. Tokens JWT contêm informações codificadas sobre o usuário, e no seu caso, o nome "Ana de Jesus" está presente no payload do token.

Se o instrutor utilizou um usuário diferente, como "camila", o token de autorização e a URL da API também seriam diferentes. Cada usuário tem um perfil único, e a URL da API que você está utilizando (https://adopet-api-i8qu.onrender.com/adotante/perfil/11643cd6-7112-415b-95d2-07904b0d1a1c) está associada ao perfil de "Ana de Jesus".

Para resolver isso, você pode seguir duas abordagens:

  1. Utilizar o mesmo usuário e token do instrutor:

    • Verifique se você tem acesso ao token e à URL exata que o instrutor utilizou. Isso garantirá que você está testando o mesmo perfil.
  2. Ajustar o teste para o usuário que você está utilizando:

    • Se você deseja continuar utilizando o usuário "Ana de Jesus", ajuste a expectativa do teste para expect(res.body.perfil.nome).to.be.equal("Ana de Jesus");.

Espero ter ajudado e bons estudos!

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