import { describe, it, expect } from 'vitest'; import { defineComponent, h, nextTick, ref } from 'vue'; import { mount } from '@vue/test-utils'; import { PaginationRoot, PaginationList, PaginationListItem, PaginationFirst, PaginationPrev, PaginationNext, PaginationLast, PaginationEllipsis, } from '..'; import type { PaginationItem } from '../utils'; function createPagination(props: Record = {}) { return mount( defineComponent({ setup() { const page = ref((props.page as number) ?? 1); return () => h( PaginationRoot, { 'total': 100, 'pageSize': 10, ...props, 'page': page.value, 'onUpdate:page': (v: number) => { page.value = v; }, }, { default: () => [ h(PaginationList, null, { default: ({ items }: { items: PaginationItem[] }) => items.map((item, i) => item.type === 'page' ? h(PaginationListItem, { key: i, value: item.value }) : h(PaginationEllipsis, { key: `ellipsis-${i}` }), ), }), h(PaginationFirst), h(PaginationPrev), h(PaginationNext), h(PaginationLast), ], }, ); }, }), ); } describe('PaginationRoot', () => { it('renders as