import { describe, expect, it } from 'vitest'; import { render } from '@testing-library/react'; import Hand from './Hand.js'; describe('Hand', () => { it('renders a hand with given name', () => { const { container } = render(); const hand = container.querySelector('.react-clock__hand'); const handBody = container.querySelector('.react-clock__hand__body'); expect(hand).toHaveClass('react-clock__minute-hand'); expect(handBody).toHaveClass('react-clock__minute-hand__body'); }); it('renders hand angled at 0° by default', () => { const { container } = render(); const hand = container.querySelector('.react-clock__hand'); expect(hand).toHaveStyle('transform: rotate(0deg)'); }); it('renders properly angled hand given angle prop', () => { const { container } = render(); const hand = container.querySelector('.react-clock__hand'); expect(hand).toHaveStyle('transform: rotate(15deg)'); }); it('renders hand with 100% length by default', () => { const { container } = render(); const handBody = container.querySelector('.react-clock__hand__body'); expect(handBody).toHaveStyle('top: 0%'); }); it('renders hand with proper length given length prop', () => { const { container } = render(); const handBody = container.querySelector('.react-clock__hand__body'); expect(handBody).toHaveStyle('top: 25%'); }); it('renders hand with 10% oppositeLength by default', () => { const { container } = render(); const handBody = container.querySelector('.react-clock__hand__body'); expect(handBody).toHaveStyle('bottom: 45%'); }); it('renders hand with proper oppositeLength given oppositeLength prop', () => { const { container } = render(); const handBody = container.querySelector('.react-clock__hand__body'); expect(handBody).toHaveStyle('bottom: 25%'); }); it('renders hand with 1px width by default', () => { const { container } = render(); const handBody = container.querySelector('.react-clock__hand__body'); expect(handBody).toHaveStyle('width: 1px'); }); it('renders hand with proper width given length prop', () => { const { container } = render(); const handBody = container.querySelector('.react-clock__hand__body'); expect(handBody).toHaveStyle('width: 5px'); }); });