hedgedoc/frontend/src/hooks/common/use-cheatsheet-search.spec.ts
Tilman Vatteroth 49bbd32635
test(frontend): replace jest with vitest
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2025-04-26 16:13:11 +02:00

59 lines
1.7 KiB
TypeScript

/*
* SPDX-FileCopyrightText: 2024 The HedgeDoc developers (see AUTHORS file)
*
* SPDX-License-Identifier: AGPL-3.0-only
*/
import type { CheatsheetSearchIndexEntry } from './use-cheatsheet-search'
import { useCheatsheetSearch } from './use-cheatsheet-search'
import { renderHook, waitFor } from '@testing-library/react'
import { describe, expect, it, beforeAll, afterAll } from 'vitest'
describe('useDocumentSearch', () => {
const searchEntries: CheatsheetSearchIndexEntry[] = [
{
id: 'test1',
extensionId: 'test1',
title: 'title1',
description: 'description1',
example: 'example1'
},
{
id: 'test2',
extensionId: 'test2',
title: 'title2 sub',
description: 'description2',
example: 'example2'
},
{
id: 'test3',
extensionId: 'test3',
title: 'title3 sub',
description: 'description3',
example: 'example3'
}
]
it('returns all entries if no search term is given', async () => {
const { result } = renderHook((searchTerm: string) => useCheatsheetSearch(searchEntries, searchTerm), {
initialProps: ''
})
await waitFor(() => expect(result.current).toStrictEqual(searchEntries))
})
it('results no entries if nothing has been found', async () => {
const { result } = renderHook((searchTerm: string) => useCheatsheetSearch(searchEntries, searchTerm), {
initialProps: 'Foo'
})
await waitFor(() => expect(result.current).toHaveLength(0))
})
it('returns multiple entries if matching', async () => {
const { result } = renderHook((searchTerm: string) => useCheatsheetSearch(searchEntries, searchTerm), {
initialProps: 'sub'
})
await waitFor(() => expect(result.current).toHaveLength(2))
})
})