mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-05-23 11:37:02 -04:00
59 lines
1.7 KiB
TypeScript
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))
|
|
})
|
|
})
|