@@ -135,7 +135,7 @@ describe("veTable row checkbox", () => {
135135 ) . toBe ( 3 ) ;
136136 } ) ;
137137
138- it ( "check disable selected keys" , async ( ) => {
138+ it ( "check disable selected keys with defaultSelectedRowKeys " , async ( ) => {
139139 const wrapper = mount ( veTable , {
140140 propsData : {
141141 columns : COLUMNS ,
@@ -185,6 +185,119 @@ describe("veTable row checkbox", () => {
185185 ) . toBe ( false ) ;
186186 } ) ;
187187
188+ it ( "check disable selected keys" , async ( ) => {
189+ const wrapper = mount ( veTable , {
190+ propsData : {
191+ columns : COLUMNS ,
192+ tableData : TABLE_DATA ,
193+ checkboxOption : {
194+ // 禁用的选择(禁止勾选或者禁止取消勾选)
195+ disableSelectedRowKeys : [ 1002 , 1005 ] ,
196+ // 默认选择
197+ //defaultSelectedRowKeys: [1001, 1003, 1004, 1005],
198+ } ,
199+ rowKeyFieldName : "rowKey" ,
200+ } ,
201+ } ) ;
202+
203+ await later ( ) ;
204+
205+ expect (
206+ wrapper
207+ . find (
208+ ".ve-table-header-tr .ve-checkbox .ve-checkbox-indeterminate" ,
209+ )
210+ . exists ( ) ,
211+ ) . toBe ( false ) ;
212+
213+ // checked count
214+ expect (
215+ wrapper . findAll (
216+ ".ve-table-body-tr .ve-checkbox .ve-checkbox-checked" ,
217+ ) . length ,
218+ ) . toBe ( 0 ) ;
219+
220+ // disable checked count
221+ expect (
222+ wrapper . findAll (
223+ ".ve-table-body-tr .ve-checkbox .ve-checkbox-checked.ve-checkbox-disabled" ,
224+ ) . length ,
225+ ) . toBe ( 0 ) ;
226+
227+ // disable unchecked count
228+ expect (
229+ wrapper
230+ . findAll ( ".ve-table-body-tr" )
231+ . at ( 1 )
232+ . find ( ".ve-checkbox-content" )
233+ . classes ( )
234+ . includes ( "ve-checkbox-checked" ) ,
235+ ) . toBe ( false ) ;
236+ } ) ;
237+
238+ it ( "select all event with check disable selected keys" , async ( ) => {
239+ const wrapper = mount ( veTable , {
240+ propsData : {
241+ columns : COLUMNS ,
242+ tableData : TABLE_DATA ,
243+ checkboxOption : {
244+ // 禁用的选择(禁止勾选或者禁止取消勾选)
245+ disableSelectedRowKeys : [ 1002 , 1005 ] ,
246+ // 默认选择
247+ //defaultSelectedRowKeys: [1001, 1003, 1004, 1005],
248+ } ,
249+ rowKeyFieldName : "rowKey" ,
250+ } ,
251+ } ) ;
252+
253+ await later ( ) ;
254+
255+ // select all
256+ wrapper
257+ . findAll ( ".ve-table-header-tr" )
258+ . at ( 0 )
259+ . findAll ( ".ve-table-header-th" )
260+ . at ( 0 )
261+ . find ( ".ve-checkbox" )
262+ . trigger ( "click" ) ;
263+
264+ await later ( ) ;
265+
266+ expect (
267+ wrapper
268+ . find (
269+ ".ve-table-header-tr .ve-checkbox .ve-checkbox-indeterminate" ,
270+ )
271+ . exists ( ) ,
272+ ) . toBe ( true ) ;
273+
274+ // checked count
275+ expect (
276+ wrapper . findAll (
277+ ".ve-table-body-tr .ve-checkbox .ve-checkbox-checked" ,
278+ ) . length ,
279+ ) . toBe ( 3 ) ;
280+
281+ // disable unchecked count
282+ expect (
283+ wrapper
284+ . findAll ( ".ve-table-body-tr" )
285+ . at ( 1 )
286+ . find ( ".ve-checkbox-content" )
287+ . classes ( )
288+ . includes ( "ve-checkbox-checked" ) ,
289+ ) . toBe ( false ) ;
290+
291+ expect (
292+ wrapper
293+ . findAll ( ".ve-table-body-tr" )
294+ . at ( 4 )
295+ . find ( ".ve-checkbox-content" )
296+ . classes ( )
297+ . includes ( "ve-checkbox-checked" ) ,
298+ ) . toBe ( false ) ;
299+ } ) ;
300+
188301 it ( "controllable attr selectedRowKey" , async ( ) => {
189302 const wrapper = mount ( veTable , {
190303 propsData : {
0 commit comments