import React from 'react'; import { render } from '@testing-library/react'; import '@testing-library/jest-dom'; import { BoatIcon, CalendarIcon, ChevronRightIcon, LocationIcon, MoonIcon } from '../assets'; describe('Trip Cards Assets', () => { describe('BoatIcon', () => { it('renders correctly', () => { const { container } = render(); const svg = container.querySelector('svg'); expect(svg).toBeInTheDocument(); }); it('has correct viewBox', () => { const { container } = render(); const svg = container.querySelector('svg'); expect(svg).toHaveAttribute('viewBox'); }); it('accepts custom props', () => { const { container } = render(); const svg = container.querySelector('svg'); expect(svg).toHaveClass('custom-class'); }); it('has fill attribute', () => { const { container } = render(); const svg = container.querySelector('svg'); expect(svg).toHaveAttribute('fill'); }); }); describe('CalendarIcon', () => { it('renders correctly', () => { const { container } = render(); const svg = container.querySelector('svg'); expect(svg).toBeInTheDocument(); }); it('has correct viewBox', () => { const { container } = render(); const svg = container.querySelector('svg'); expect(svg).toHaveAttribute('viewBox'); }); it('accepts custom props', () => { const { container } = render(); const svg = container.querySelector('svg'); expect(svg).toHaveAttribute('data-testid', 'calendar'); }); it('renders path elements', () => { const { container } = render(); const paths = container.querySelectorAll('path'); expect(paths.length).toBeGreaterThan(0); }); }); describe('ChevronRightIcon', () => { it('renders correctly', () => { const { container } = render(); const svg = container.querySelector('svg'); expect(svg).toBeInTheDocument(); }); it('has correct dimensions', () => { const { container } = render(); const svg = container.querySelector('svg'); expect(svg).toHaveAttribute('width', '16'); expect(svg).toHaveAttribute('height', '16'); }); it('has correct viewBox', () => { const { container } = render(); const svg = container.querySelector('svg'); expect(svg).toHaveAttribute('viewBox', '0 0 16 16'); }); it('renders with currentColor stroke', () => { const { container } = render(); const path = container.querySelector('path'); expect(path).toHaveAttribute('stroke', 'currentColor'); }); it('accepts custom props', () => { const { container } = render( ); const svg = container.querySelector('svg'); expect(svg).toHaveStyle({ color: 'red' }); }); }); describe('LocationIcon', () => { it('renders correctly', () => { const { container } = render(); const svg = container.querySelector('svg'); expect(svg).toBeInTheDocument(); }); it('has correct viewBox', () => { const { container } = render(); const svg = container.querySelector('svg'); expect(svg).toHaveAttribute('viewBox'); }); it('accepts custom props', () => { const { container } = render(); const svg = container.querySelector('svg'); expect(svg).toHaveAttribute('aria-label', 'location'); }); it('renders path elements', () => { const { container } = render(); const path = container.querySelector('path'); expect(path).toBeInTheDocument(); }); }); describe('MoonIcon', () => { it('renders correctly', () => { const { container } = render(); const svg = container.querySelector('svg'); expect(svg).toBeInTheDocument(); }); it('has correct viewBox', () => { const { container } = render(); const svg = container.querySelector('svg'); expect(svg).toHaveAttribute('viewBox'); }); it('has correct dimensions', () => { const { container } = render(); const svg = container.querySelector('svg'); expect(svg).toHaveAttribute('width'); expect(svg).toHaveAttribute('height'); }); it('accepts custom props', () => { const { container } = render(); const svg = container.querySelector('svg'); expect(svg).toHaveAttribute('id', 'moon-icon'); }); it('renders path with fill color', () => { const { container } = render(); const path = container.querySelector('path'); expect(path).toHaveAttribute('fill'); }); }); describe('Icons Integration', () => { it('all icons render without errors', () => { const { container } = render(
); const svgs = container.querySelectorAll('svg'); expect(svgs.length).toBe(5); }); it('icons can be styled with className', () => { const { container } = render(
); const svgs = container.querySelectorAll('.icon-style'); expect(svgs.length).toBe(3); }); it('icons maintain SVG structure', () => { const icons = [ , , , , ]; icons.forEach(icon => { const { container } = render(icon); const svg = container.querySelector('svg'); if (svg) { expect(svg.tagName).toBe('svg'); } }); }); }); });