1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
| import type { SortableOptions } from 'sortablejs';
|
| import { beforeEach, describe, expect, it, vi } from 'vitest';
|
| import { useSortable } from '../use-sortable';
|
| describe('useSortable', () => {
| beforeEach(() => {
| vi.mock('sortablejs/modular/sortable.complete.esm.js', () => ({
| default: {
| create: vi.fn(),
| },
| }));
| });
| it('should call Sortable.create with the correct options', async () => {
| // Create a mock element
| const mockElement = document.createElement('div') as HTMLDivElement;
|
| // Define custom options
| const customOptions: SortableOptions = {
| group: 'test-group',
| sort: false,
| };
|
| // Use the useSortable function
| const { initializeSortable } = useSortable(mockElement, customOptions);
|
| // Initialize sortable
| await initializeSortable();
|
| // Import sortablejs to access the mocked create function
| const Sortable = await import('sortablejs/modular/sortable.complete.esm.js');
|
| // Verify that Sortable.create was called with the correct parameters
| expect(Sortable.default.create).toHaveBeenCalledTimes(1);
| expect(Sortable.default.create).toHaveBeenCalledWith(
| mockElement,
| expect.objectContaining({
| animation: 300,
| delay: 400,
| delayOnTouchOnly: true,
| ...customOptions,
| }),
| );
| });
| });
|
|