Skip to content

Commit bbe059d

Browse files
committed
✅ test: add shouldAutoRemoveFilter unit tests
1 parent a110157 commit bbe059d

1 file changed

Lines changed: 73 additions & 0 deletions

File tree

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
import { describe, it, expect } from 'vitest'
2+
import { FilterFn } from '../src'
3+
import { shouldAutoRemoveFilter } from '../src/features/ColumnFiltering'
4+
5+
const customAutoRemove: FilterFn<any> = (row, columnId, filterValue) => {
6+
return filterValue === row.getValue(columnId)
7+
}
8+
customAutoRemove.autoRemove = (val) => val === undefined
9+
10+
const neverAutoRemove: FilterFn<any> = (row, columnId, filterValue) => {
11+
return filterValue === row.getValue(columnId)
12+
}
13+
neverAutoRemove.autoRemove = () => false
14+
15+
const noAutoRemove: FilterFn<any> = (row, columnId, filterValue) => {
16+
return filterValue === row.getValue(columnId)
17+
}
18+
19+
describe('shouldAutoRemoveFilter', () => {
20+
describe('with custom autoRemove defined', () => {
21+
it('should use custom autoRemove result for empty string', () => {
22+
expect(shouldAutoRemoveFilter(customAutoRemove, '')).toBe(false)
23+
})
24+
25+
it('should use custom autoRemove result for undefined', () => {
26+
expect(shouldAutoRemoveFilter(customAutoRemove, undefined)).toBe(true)
27+
})
28+
29+
it('should use custom autoRemove result for null', () => {
30+
expect(shouldAutoRemoveFilter(customAutoRemove, null)).toBe(false)
31+
})
32+
33+
it('should use custom autoRemove result for zero', () => {
34+
expect(shouldAutoRemoveFilter(customAutoRemove, 0)).toBe(false)
35+
})
36+
37+
it('should use custom autoRemove result for false', () => {
38+
expect(shouldAutoRemoveFilter(customAutoRemove, false)).toBe(false)
39+
})
40+
41+
it('should keep undefined filter when custom autoRemove returns false for it', () => {
42+
expect(shouldAutoRemoveFilter(neverAutoRemove, undefined)).toBe(false)
43+
})
44+
})
45+
46+
describe('without autoRemove defined', () => {
47+
it('should remove undefined filter', () => {
48+
expect(shouldAutoRemoveFilter(noAutoRemove, undefined)).toBe(true)
49+
})
50+
51+
it('should remove empty string filter', () => {
52+
expect(shouldAutoRemoveFilter(noAutoRemove, '')).toBe(true)
53+
})
54+
55+
it('should keep null filter', () => {
56+
expect(shouldAutoRemoveFilter(noAutoRemove, null)).toBe(false)
57+
})
58+
})
59+
60+
describe('without filterFn', () => {
61+
it('should remove undefined filter', () => {
62+
expect(shouldAutoRemoveFilter(undefined, undefined)).toBe(true)
63+
})
64+
65+
it('should remove empty string filter', () => {
66+
expect(shouldAutoRemoveFilter(undefined, '')).toBe(true)
67+
})
68+
69+
it('should keep null filter', () => {
70+
expect(shouldAutoRemoveFilter(undefined, null)).toBe(false)
71+
})
72+
})
73+
})

0 commit comments

Comments
 (0)