import { describe, it, expect } from 'vitest';
import { render } from 'vitest-browser-svelte';
import AnnotationShape from './AnnotationShape.svelte';
import type { Annotation } from '$lib/shared/types';

const annotation: Annotation = {
	id: 'ann-1',
	documentId: 'doc-1',
	pageNumber: 1,
	x: 0.1,
	y: 0.2,
	width: 0.3,
	height: 0.4,
	color: '#00c7b1',
	createdAt: '2026-01-01T00:00:00Z'
};

describe('AnnotationShape', () => {
	describe('isResizable prop', () => {
		it('does not render AnnotationEditOverlay when isResizable is false', async () => {
			render(AnnotationShape, {
				annotation,
				isHovered: false,
				isActive: false,
				isResizable: false,
				onclick: () => {},
				onpointerenter: () => {},
				onpointerleave: () => {}
			});

			const handles = document.querySelectorAll('[data-handle]');
			expect(handles).toHaveLength(0);
		});

		it('renders AnnotationEditOverlay when isResizable is true', async () => {
			render(AnnotationShape, {
				annotation,
				isHovered: false,
				isActive: true,
				isResizable: true,
				onclick: () => {},
				onpointerenter: () => {},
				onpointerleave: () => {}
			});

			const handles = document.querySelectorAll('[data-handle]');
			expect(handles).toHaveLength(8);
		});
	});
});
