import { render, screen } from "@testing-library/react";
import {it, describe, expect} from "vitest"
import { Alert } from "..";
import { Component } from 'lucide-react'
describe('Alert', () => {
it('renders default alert', () => {
const component = render(
Atenção!
Houve um problema com o seu cartão de crédito. Por favor, tente novamente mais tarde.
);
expect(screen.getByText('Atenção!')).toBeInTheDocument();
expect(screen.getByText('Houve um problema com o seu cartão de crédito. Por favor, tente novamente mais tarde.')).toBeInTheDocument();
expect(screen.getByTestId('icon')).toBeInTheDocument();
expect(component.baseElement).toMatchSnapshot();
});
it('renders destructive alert', () => {
const component = render(
Atenção!
Houve um problema com o seu cartão de crédito. Por favor, tente novamente mais tarde.
);
expect(screen.getByText('Atenção!')).toBeInTheDocument();
expect(screen.getByText('Houve um problema com o seu cartão de crédito. Por favor, tente novamente mais tarde.')).toBeInTheDocument();
expect(screen.getByTestId('icon')).toBeInTheDocument();
expect(component.baseElement).toMatchSnapshot();
});
it('renders alert without title', () => {
const component = render(
Houve um problema com o seu cartão de crédito. Por favor, tente novamente mais tarde.
);
expect(screen.queryByText('Atenção!')).not.toBeInTheDocument();
expect(screen.getByText('Houve um problema com o seu cartão de crédito. Por favor, tente novamente mais tarde.')).toBeInTheDocument();
expect(screen.getByTestId('icon')).toBeInTheDocument();
expect(component.baseElement).toMatchSnapshot();
});
it('renders alert without description', () => {
render(
Atenção!
);
expect(screen.getByText('Atenção!')).toBeInTheDocument();
expect(screen.queryByText('Houve um problema com o seu cartão de crédito. Por favor, tente novamente mais tarde.')).not.toBeInTheDocument();
expect(screen.getByTestId('icon')).toBeInTheDocument();
});
it('renders alert without icon', () => {
const component = render(
Atenção!
Houve um problema com o seu cartão de crédito. Por favor, tente novamente mais tarde.
);
expect(screen.getByText('Atenção!')).toBeInTheDocument();
expect(screen.getByText('Houve um problema com o seu cartão de crédito. Por favor, tente novamente mais tarde.')).toBeInTheDocument();
expect(screen.queryByRole('svg')).not.toBeInTheDocument();
expect(component.baseElement).toMatchSnapshot();
});
});