iter(g70): 冒烟补多列排序、页大小与 reset 重置断言

This commit is contained in:
HIsheR
2026-10-26 12:39:28 +08:00
parent 5c0caeb94c
commit 5fb61e1fc9
@@ -119,4 +119,39 @@ toggle.dispatch({ type: 'toggleSort', key: 'age' });
toggle.dispatch({ type: 'toggleSort', key: 'age' });
assert(toggle.getState().sorting.length === 0, '同一列连点三次回到无序(asc → desc → 取消)');
const multi = createTable({
data: users,
columns: [{ key: 'city', header: 'City' }, { key: 'age', header: 'Age', sortable: true }],
rowKey: 'id',
plugins: [sortPlugin({ multi: true })],
});
multi.dispatch({ type: 'toggleSort', key: 'city', multi: true });
multi.dispatch({ type: 'toggleSort', key: 'age', multi: true });
assert(multi.getState().sorting.length === 2, 'multi 排序保留两列规则');
assert(
JSON.stringify(multi.getVisibleRows().rows.map((r) => r.id)) === JSON.stringify([4, 2, 5, 3, 1]),
'多列排序按规则顺序生效(city 升序,同城内 age 升序:Beijing 4→2、Shanghai 5→3)',
);
const sizing = createTable({
data: users,
columns: [{ key: 'name', header: 'Name' }],
rowKey: 'id',
plugins: [paginationPlugin()],
initialState: { pagination: { page: 1, pageSize: 2 } },
});
sizing.dispatch({ type: 'setPage', page: 2 });
sizing.dispatch({ type: 'setPageSize', pageSize: 3 });
assert(sizing.getPageInfo().page === 1 && sizing.getPageInfo().pageSize === 3, '改页大小回到第 1 页');
sizing.dispatch({ type: 'toggleSort', key: 'name' });
sizing.dispatch({ type: 'reset' });
assert(
sizing.getState().sorting.length === 0 &&
sizing.getState().filters.length === 0 &&
sizing.getState().pagination.page === 1 &&
sizing.getState().pagination.pageSize === 20,
'reset 回到默认态(排序/筛选清空,分页回 1/20)',
);
console.log('SMOKE OK');