-
Notifications
You must be signed in to change notification settings - Fork 123
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
38cf1e4
commit 9961279
Showing
3 changed files
with
46 additions
and
78 deletions.
There are no files selected for viewing
70 changes: 46 additions & 24 deletions
70
apps/frontend/src/components/command/tests/searchTasks.spec.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) | ||
}) | ||
}) |
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
9961279
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Successfully deployed to the following URLs:
vue3-dida – ./
vue3-dida-git-main-cuixueshe.vercel.app
vue3-dida-cuixueshe.vercel.app
vue3-dida-eta.vercel.app
dida.cuixueshe.com