1
resposta

[Dúvida] Como eu poderia fazer um teste unitário para a função alterarStatus?

function alterarStatus(idJogo) {
  let jogoClicado = document.getElementById(`game-${idJogo}`);
  let imagem = jogoClicado.querySelector(".dashboard__item__img");
  let botao = jogoClicado.querySelector(".dashboard__item__button");

  imagem.classList.contains("dashboard__item__img--rented")
    ? (
        imagem.classList.remove("dashboard__item__img--rented"),
        botao.textContent = "Alugar",
        botao.classList.remove("dashboard__item__button--return"))
    : (
        imagem.classList.add("dashboard__item__img--rented"),
        botao.textContent = "Devolver",
        botao.classList.add("dashboard__item__button--return"));
}
1 resposta

Olá, Wallison!

Para fazer um teste unitário para a função alterarStatus, você pode utilizar uma biblioteca de testes como o Jest. Com o Jest, você pode criar um arquivo separado para os testes e utilizar a função test para definir os casos de teste.

Por exemplo, suponha que você queira testar se a função está removendo corretamente a classe dashboard__item__img--rented da imagem quando o jogo está alugado. Você pode criar um teste assim:

test("Deve remover a classe 'dashboard__item__img--rented' da imagem quando o jogo está alugado", () => {
  // Cria um elemento de imagem simulado
  const imagem = document.createElement("img");
  imagem.classList.add("dashboard__item__img--rented");

  // Cria um elemento de botão simulado
  const botao = document.createElement("button");

  // Chama a função alterarStatus com os elementos simulados
  alterarStatus(imagem, botao);

  // Verifica se a classe foi removida da imagem
  expect(imagem.classList.contains("dashboard__item__img--rented")).toBe(false);
});

Nesse exemplo, criamos elementos simulados de imagem e botão, adicionamos a classe dashboard__item__img--rented à imagem e chamamos a função alterarStatus. Em seguida, verificamos se a classe foi removida corretamente da imagem utilizando a função expect e o método toBe.

Você pode criar outros testes para verificar se a função está adicionando a classe corretamente quando o jogo está disponível, se o texto do botão está sendo alterado corretamente, entre outros cenários que desejar testar.

Lembre-se de importar o Jest no seu projeto e executar os testes utilizando o comando jest no terminal.

Bons estudos!