Skip to content

Commit

Permalink
refactor: search test
Browse files Browse the repository at this point in the history
  • Loading branch information
cuixiaorui committed Jun 29, 2023
1 parent 16c3f61 commit 7a36264
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 22 deletions.
4 changes: 3 additions & 1 deletion apps/frontend/src/components/command/search.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ export function useSearch() {
() => search.value,
(v) => {
if (v === '') {
searchIng.value = false
resetSearch()
resetSearchCommands()
resetSearchTasks()
}
Expand All @@ -50,6 +50,8 @@ export function useSearch() {

function resetSearch() {
search.value = ''
loading.value = false
searchIng.value = false
}

async function handleSearch(input: string) {
Expand Down
44 changes: 23 additions & 21 deletions apps/frontend/src/components/command/tests/search.spec.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,6 @@
import { beforeEach, describe, expect, it, vi } from 'vitest'
import flushPromises from 'flush-promises'
import { useSearch } from '../search'

async function flushWatch() {
// 这是为了处理 watch
await flushPromises() // 这是为了处理延迟 500ms
vi.runAllTimers()
// 这是为了处理内部的 await
await flushPromises()
}

const resetSearchCommands = vi.fn()
const searchCommands = vi.fn()
vi.mock('../searchCommands.ts', () => {
Expand Down Expand Up @@ -53,8 +44,8 @@ describe('search', () => {

search.value = '吃饭'

await flushPromises()
vi.runAllTimers()
await vi.advanceTimersToNextTimerAsync()

expect(loading.value).toBe(true)
})

Expand All @@ -63,7 +54,7 @@ describe('search', () => {

search.value = '吃饭'

await flushWatch()
await vi.runAllTimersAsync()

expect(loading.value).toBe(false)
})
Expand All @@ -73,19 +64,18 @@ describe('search', () => {

search.value = '吃饭'

await flushWatch()
await vi.runAllTimersAsync()

expect(searchIng.value).toBe(true)
})

it('should be searching is false when search reset', async () => {
const { search, searchIng } = useSearch()

search.value = '吃饭'
await flushWatch()
await vi.runAllTimersAsync()

search.value = ''
await flushWatch()
await vi.runAllTimersAsync()

expect(searchIng.value).toBe(false)
})
Expand All @@ -95,7 +85,17 @@ describe('search', () => {

search.value = '>主页'

await flushWatch()
await vi.runAllTimersAsync()

expect(searchCommands).toBeCalledWith('主页')
})

it('should search commands when input contain blank character ', async () => {
const { search } = useSearch()

search.value = '>主页 '

await vi.runAllTimersAsync()

expect(searchCommands).toBeCalledWith('主页')
})
Expand All @@ -104,20 +104,22 @@ describe('search', () => {
const { search } = useSearch()
search.value = '吃饭'

await flushWatch()
await vi.runAllTimersAsync()

expect(searchTasks).toBeCalledWith('吃饭')
})

it('should be reset when reset search', async () => {
const { search } = useSearch()
const { search, loading, searchIng } = useSearch()
search.value = '吃饭'

await flushWatch()
await vi.runAllTimersAsync()

search.value = ''
await flushWatch()
await vi.runAllTimersAsync()

expect(loading.value).toBe(false)
expect(searchIng.value).toBe(false)
expect(resetSearchCommands).toBeCalled()
expect(resetSearchTasks).toBeCalled()
})
Expand Down

1 comment on commit 7a36264

@vercel
Copy link

@vercel vercel bot commented on 7a36264 Jun 29, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.