Untitled

 avatar
unknown
plain_text
a year ago
2.5 kB
6
Indexable
import React from 'react';
import { render, screen, fireEvent } from '@testing-library/react';
import DrinkDetails from './DrinkDetails';

// Teste para verificar se a imagem da bebida é renderizada corretamente.
test('renders drink image', () => {
  const mockDrink = {
    strDrinkThumb: 'mock-image-url',
    // Outras propriedades necessárias para o teste
  };

  render(<DrinkDetails API={mockDrink} />);
  const drinkImage = screen.getByTestId('recipe-photo');
  expect(drinkImage).toBeInTheDocument();
  expect(drinkImage).toHaveAttribute('src', 'mock-image-url');
});

// Teste para verificar se o botão de compartilhar funciona corretamente.
test('share button copies link to clipboard', () => {
  const mockDrink = {
    idDrink: 'mock-drink-id',
    // Outras propriedades necessárias para o teste
  };

  render(<DrinkDetails API={mockDrink} });
  const shareButton = screen.getByTestId('share-btn');

  // Simule um clique no botão de compartilhar.
  fireEvent.click(shareButton);

  // Verifique se a mensagem "Link copied!" é exibida.
  const linkCopiedMessage = screen.getByText('Link copied!');
  expect(linkCopiedMessage).toBeInTheDocument();
});

// Teste para verificar se o botão de favorito funciona corretamente.
test('favorite button toggles favorite state', () => {
  const mockDrink = {
    idDrink: 'mock-drink-id',
    strDrink: 'Mock Drink',
    strCategory: 'Mock Category',
    strAlcoholic: 'Mock Alcoholic',
    strDrinkThumb: 'mock-image-url',
    // Outras propriedades necessárias para o teste
  };

  render(<DrinkDetails API={mockDrink} });
  const favoriteButton = screen.getByTestId('favorite-btn');

  // Verifique se o ícone de favorito inicialmente é o ícone branco.
  expect(favoriteButton).toBeInTheDocument();
  expect(favoriteButton).toHaveAttribute('src', 'whiteHeartIcon.svg');

  // Simule um clique no botão de favorito.
  fireEvent.click(favoriteButton);

  // Verifique se o ícone de favorito muda para o ícone preto.
  expect(favoriteButton).toHaveAttribute('src', 'blackHeartIcon.svg');
});

// Teste para verificar se o título da receita é renderizado corretamente.
test('renders recipe title', () => {
  const mockDrink = {
    strDrink: 'Mock Drink Title',
    // Outras propriedades necessárias para o teste
  };

  render(<DrinkDetails API={mockDrink} });
  const recipeTitle = screen.getByTestId('recipe-title');
  expect(recipeTitle).toBeInTheDocument();
  expect(recipeTitle).toHaveTextContent('Mock Drink Title');
});
Editor is loading...