import { render, screen } from '@testing-library/react';
import { describe, it, expect } from 'vitest';
import { Avatar, AvatarImage, AvatarFallback } from './avatar';
import React from 'react';
describe('Avatar', () => {
it('renders correctly', () => {
render(
CN
);
// In jsdom, image won't load, so fallback should be visible
expect(screen.getByText('CN')).toBeInTheDocument();
});
it('renders fallback when image is not provided', () => {
render(
JD
);
expect(screen.getByText('JD')).toBeInTheDocument();
});
it('renders with different sizes', () => {
const { rerender, container } = render(
XS
);
expect(container.firstChild).toHaveClass('size-6');
rerender(
XL
);
expect(container.firstChild).toHaveClass('size-16');
});
it('has correct data-slot attributes', () => {
const { container } = render(
FB
);
expect(container.querySelector('[data-slot="avatar"]')).toBeInTheDocument();
expect(container.querySelector('[data-slot="avatar-fallback"]')).toBeInTheDocument();
});
});