Skip to content

Commit

Permalink
refactor: search tasks test case
Browse files Browse the repository at this point in the history
  • Loading branch information
cuixiaorui committed Jul 7, 2023
1 parent 38cf1e4 commit 9961279
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 78 deletions.
70 changes: 46 additions & 24 deletions apps/frontend/src/components/command/tests/searchTasks.spec.ts
Original file line number Diff line number Diff line change
@@ -1,60 +1,82 @@
import { beforeEach, describe, expect, it, vi } from 'vitest'
import { createTestingPinia } from '@pinia/testing'
import { useSearchTasks } from '../searchTasks'
import { completeSmartProject } from '@/store'
import { completeSmartProject, useListProjectsStore, useTasksStore } from '@/store'
import { liveListProject, tasks } from '@/tests/fixture'

vi.mock('@/store/tasks')
vi.mock('@/store/listProjects')

describe('SearchTasks', () => {
describe('search tasks', () => {
beforeEach(() => {
createTestingPinia({
createSpy: vi.fn,
})

const tasksStore = useTasksStore()
vi.mocked(tasksStore.findAllTasksNotRemoved).mockImplementation(
async () => tasks,
)

const listProjectsStore = useListProjectsStore()
vi.mocked(listProjectsStore.findProject).mockImplementation(() => liveListProject)

const { resetSearchTasks } = useSearchTasks()

resetSearchTasks()
})
it('should be search a task by title', async () => {
const { searchTasks, filteredTasks } = useSearchTasks()
await searchTasks('写代码')

await searchTasks('吃饭')

expect(filteredTasks.value.length).toBe(1)
expect(filteredTasks.value[0].item.title).toBe('写代码')
const item = filteredTasks.value[0].item
expect(item.title).toBe('吃饭')
expect(item).toHaveProperty('id')
expect(item).toHaveProperty('desc')
expect(item).toHaveProperty('done')
expect(item).toHaveProperty('from')
})

it('should be search a task by doc', async () => {
it('should be search a task by desc', async () => {
const { searchTasks, filteredTasks } = useSearchTasks()
await searchTasks('一包烟')

await searchTasks('吃什么')

expect(filteredTasks.value.length).toBe(1)
expect(filteredTasks.value[0].item.title).toBe('写代码')
expect(filteredTasks.value[0].item.title).toBe('吃饭')
})

it('should not be found when the task does not exist', async () => {
const { searchTasks, filteredTasks } = useSearchTasks()

await searchTasks('运动')

expect(filteredTasks.value.length).toBe(0)
})

it('should reset search result', async () => {
const { resetSearchTasks, searchTasks, filteredTasks } = useSearchTasks()
await searchTasks('一包烟')
it('should be task\'s project is listProject when status is active', async () => {
const { searchTasks, filteredTasks } = useSearchTasks()

resetSearchTasks()
await searchTasks('吃饭')

expect(filteredTasks.value.length).toBe(0)
expect(filteredTasks.value[0].item.done).toBe(false)
expect(filteredTasks.value[0].item.from?.name).toBe('生活')
})

it('should be task’s project is listProject when status is active', async () => {
it('should be task\'s project is completeSmartProject when status is complete', async () => {
const { searchTasks, filteredTasks } = useSearchTasks()

await searchTasks('写代码')

const task = filteredTasks.value[0].item
expect(task.from!.type).toBe('listProject')
expect(filteredTasks.value[0].item.done).toBe(true)
expect(filteredTasks.value[0].item.from?.name).toBe(completeSmartProject.name)
})

it('should be task’s project is completeSmartProject when status is completed', async () => {
const { searchTasks, filteredTasks } = useSearchTasks()
await searchTasks('睡觉')
it('should be reset tasks', async () => {
const { searchTasks, filteredTasks, resetSearchTasks } = useSearchTasks()

const task = filteredTasks.value[0].item
expect(task.from!.name).toBe(completeSmartProject.name)
await searchTasks('吃饭')

resetSearchTasks()

expect(filteredTasks.value.length).toBe(0)
})
})
15 changes: 0 additions & 15 deletions apps/frontend/src/store/__mocks__/listProjects.ts

This file was deleted.

39 changes: 0 additions & 39 deletions apps/frontend/src/store/__mocks__/tasks.ts

This file was deleted.

1 comment on commit 9961279

@vercel
Copy link

@vercel vercel bot commented on 9961279 Jul 7, 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.