aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files/src/composables/useFileListHeaders.spec.ts
blob: c407156412b135f83ccf6178a9997682e2932b5e (plain)
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
/*!
 * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
 * SPDX-License-Identifier: AGPL-3.0-or-later
 */

import { Header } from '@nextcloud/files'
import { beforeEach, describe, expect, it, vi } from 'vitest'
import { useFileListHeaders } from './useFileListHeaders.ts'

const getFileListHeaders = vi.hoisted(() => vi.fn())

vi.mock('@nextcloud/files', async (originalModule) => {
	return {
		...(await originalModule()),
		getFileListHeaders,
	}
})

describe('useFileListHeaders', () => {
	beforeEach(() => vi.resetAllMocks())

	it('gets the headers', () => {
		const header = new Header({ id: '1', order: 5, render: vi.fn(), updated: vi.fn() })
		getFileListHeaders.mockImplementationOnce(() => [header])

		const headers = useFileListHeaders()
		expect(headers.value).toEqual([header])
		expect(getFileListHeaders).toHaveBeenCalledOnce()
	})

	it('headers are sorted', () => {
		const header = new Header({ id: '1', order: 10, render: vi.fn(), updated: vi.fn() })
		const header2 = new Header({ id: '2', order: 5, render: vi.fn(), updated: vi.fn() })
		getFileListHeaders.mockImplementationOnce(() => [header, header2])

		const headers = useFileListHeaders()
		// lower order first
		expect(headers.value.map(({ id }) => id)).toStrictEqual(['2', '1'])
		expect(getFileListHeaders).toHaveBeenCalledOnce()
	})
})