Skip to content

Commit 94b0c07

Browse files
committed
chore: split collect and filter slow tests logic
1 parent 6ba7aa8 commit 94b0c07

3 files changed

Lines changed: 13 additions & 13 deletions

File tree

packages/ui/client/composables/explorer/collector.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -405,7 +405,7 @@ function collectTests(file: File, search: SearchMatcher = () => true, filter?: F
405405
} satisfies CollectFilteredTests
406406

407407
for (const t of testsCollector(file)) {
408-
if (!filter || testMatcher(t, search, filter)) {
408+
if (!filter || testMatcher(t, search, filter, false)) {
409409
data.total++
410410
if (isSlowTestTask(t)) {
411411
data.slow++

packages/ui/client/composables/explorer/filter.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import type { Task } from '@vitest/runner'
22
import type { FileTreeNode, Filter, FilterResult, ParentTreeNode, SearchMatcher, UITaskTreeNode } from '~/composables/explorer/types'
3+
import { isTestCase } from '@vitest/runner/utils'
34
import { client, config, findById } from '~/composables/client'
45
import { explorerTree } from '~/composables/explorer/index'
56
import { currentProjectName, filteredFiles, projectSort, uiEntries } from '~/composables/explorer/state'
@@ -10,8 +11,8 @@ import {
1011
isTestNode,
1112
} from '~/composables/explorer/utils'
1213

13-
export function testMatcher(task: Task, search: SearchMatcher, filter: Filter) {
14-
return task ? matchTask(task, search, filter) : false
14+
export function testMatcher(task: Task, search: SearchMatcher, filter: Filter, filterSlow = true) {
15+
return task ? matchTask(task, search, filter, filterSlow) : false
1516
}
1617
/**
1718
* Filter child nodes using search, filter and only tests.
@@ -219,13 +220,11 @@ function* filterParents(
219220
}
220221
}
221222

222-
function matchState(task: Task, filter: Filter) {
223-
if (filter.slow) {
224-
if (task.type === 'test') {
223+
function matchState(task: Task, filter: Filter, filterSlow = true) {
224+
if (filterSlow && filter.slow) {
225+
if (isTestCase(task)) {
225226
const threshold = config.value.slowTestThreshold
226-
if (typeof threshold === 'number' && typeof task.result?.duration === 'number' && task.result.duration > threshold) {
227-
return true
228-
}
227+
return typeof threshold === 'number' && typeof task.result?.duration === 'number' && task.result.duration > threshold
229228
}
230229
}
231230

@@ -251,10 +250,11 @@ function matchTask(
251250
task: Task,
252251
search: SearchMatcher,
253252
filter: Filter,
253+
filterSlow = true,
254254
) {
255255
// search and filter will apply together
256256
if (search(task)) {
257-
const hasStatusFilter = filter.success || filter.failed || filter.skipped || filter.slow
257+
const hasStatusFilter = filter.success || filter.failed || filter.skipped || (filterSlow && filter.slow)
258258
if (hasStatusFilter) {
259259
if (matchState(task, filter)) {
260260
return true

packages/ui/client/composables/explorer/utils.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ export function isParentNode(node: UITaskTreeNode): node is FileTreeNode | Suite
3434
}
3535

3636
export function isSlowTestTask(task: Task) {
37-
if (task.type !== 'test') {
37+
if (!isTestCase(task)) {
3838
return false
3939
}
4040

@@ -43,8 +43,8 @@ export function isSlowTestTask(task: Task) {
4343
return false
4444
}
4545

46-
const treshold = config.value.slowTestThreshold
47-
return typeof treshold === 'number' && duration > treshold
46+
const threshold = config.value.slowTestThreshold
47+
return typeof threshold === 'number' && duration > threshold
4848
}
4949

5050
export function getSortedRootTasks(sort: SortUIType, tasks = explorerTree.root.tasks) {

0 commit comments

Comments
 (0)