Untitled
unknown
plain_text
2 years ago
2.5 kB
7
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...