@@ -64,30 +64,10 @@ describe('filter', () => {
64
64
value : ( s : string ) => s === '1' ,
65
65
}
66
66
const items = [
67
- {
68
- title : 'foo' ,
69
- subtitle : 'bar' ,
70
- value : '1' ,
71
- custom : '1' ,
72
- } ,
73
- {
74
- title : 'fizz' ,
75
- subtitle : 'buzz' ,
76
- value : '1' ,
77
- custom : 'bar' ,
78
- } ,
79
- {
80
- title : 'foobar' ,
81
- subtitle : 'fizzbuzz' ,
82
- value : '2' ,
83
- custom : 'bar' ,
84
- } ,
85
- {
86
- title : 'buzz' ,
87
- subtitle : 'buzz' ,
88
- value : '1' ,
89
- custom : 'buzz' ,
90
- } ,
67
+ { title : 'foo' , subtitle : 'bar' , value : '1' , custom : '1' } ,
68
+ { title : 'fizz' , subtitle : 'buzz' , value : '1' , custom : 'bar' } ,
69
+ { title : 'foobar' , subtitle : 'fizzbuzz' , value : '2' , custom : 'bar' } ,
70
+ { title : 'buzz' , subtitle : 'buzz' , value : '1' , custom : 'buzz' } ,
91
71
] as any
92
72
const filterKeys = [ 'title' , 'value' , 'subtitle' , 'custom' ]
93
73
@@ -122,26 +102,10 @@ describe('filter', () => {
122
102
value : ( s : string ) => s === '1' ,
123
103
}
124
104
const items = [
125
- {
126
- title : 'foo' ,
127
- subtitle : 'bar' ,
128
- value : '1' ,
129
- } ,
130
- {
131
- title : 'fizz' ,
132
- subtitle : 'buzz' ,
133
- value : '1' ,
134
- } ,
135
- {
136
- title : 'foobar' ,
137
- subtitle : 'fizzbuzz' ,
138
- value : '2' ,
139
- } ,
140
- {
141
- title : 'buzz' ,
142
- subtitle : 'buzz' ,
143
- value : '2' ,
144
- } ,
105
+ { title : 'foo' , subtitle : 'bar' , value : '1' } ,
106
+ { title : 'fizz' , subtitle : 'buzz' , value : '1' } ,
107
+ { title : 'foobar' , subtitle : 'fizzbuzz' , value : '2' } ,
108
+ { title : 'buzz' , subtitle : 'buzz' , value : '2' } ,
145
109
] as any
146
110
const filterKeys = [ 'title' , 'value' ]
147
111
@@ -161,14 +125,33 @@ describe('filter', () => {
161
125
filterKeys,
162
126
customKeyFilter,
163
127
filterMode : 'intersection' ,
164
- } ) ) . toHaveLength ( 0 )
128
+ } ) ) . toHaveLength ( 2 )
165
129
166
130
expect ( filterItems ( items , '' , {
167
131
filterKeys,
168
132
customKeyFilter,
169
133
filterMode : 'every' ,
170
134
} ) ) . toHaveLength ( 2 )
171
135
} )
136
+
137
+ // https://github.com/vuetifyjs/vuetify/pull/21876
138
+ it ( 'should return filtered rows when all columns have filters' , ( ) => {
139
+ const customKeyFilter = {
140
+ title : ( s : string ) => s . length < 5 ,
141
+ subtitle : ( s : string ) => s . startsWith ( 'b' ) ,
142
+ value : ( s : any ) => Number ( s ) > 0 ,
143
+ }
144
+ const items = [
145
+ { title : 'foo' , subtitle : 'bar' , value : 1 } ,
146
+ { title : 'fizz' , subtitle : 'buzz' , value : 1 } ,
147
+ { title : 'foobar' , subtitle : 'fizzbuzz' , value : 2 } ,
148
+ ] as any
149
+
150
+ expect ( filterItems ( items , '' , {
151
+ customKeyFilter,
152
+ filterMode : 'intersection' ,
153
+ } ) ) . toHaveLength ( 2 )
154
+ } )
172
155
} )
173
156
174
157
describe ( 'useFilter' , ( ) => {
0 commit comments