mirror of https://github.com/ElemeFE/element
Table: add sortable test
parent
ad30305d6d
commit
691a49fc17
|
@ -945,4 +945,4 @@
|
||||||
| filters | 数据过滤的选项,数组格式,数组中的元素需要有 text 和 value 属性。 | Array[{ text, value }] | — | — |
|
| filters | 数据过滤的选项,数组格式,数组中的元素需要有 text 和 value 属性。 | Array[{ text, value }] | — | — |
|
||||||
| filter-multiple | 数据过滤的选项是否多选 | Boolean | — | true |
|
| filter-multiple | 数据过滤的选项是否多选 | Boolean | — | true |
|
||||||
| filter-method | 数据过滤使用的方法,如果是多选的筛选项,对每一条数据会执行多次,任意一次返回 true 就会显示。 | Function(value, row) | — | — |
|
| filter-method | 数据过滤使用的方法,如果是多选的筛选项,对每一条数据会执行多次,任意一次返回 true 就会显示。 | Function(value, row) | — | — |
|
||||||
| filteredValue | 选中的数据过滤项,如果需要自定义表头过滤的渲染方式,可能会需要此属性。 | Array | — | — |
|
| filtered-value | 选中的数据过滤项,如果需要自定义表头过滤的渲染方式,可能会需要此属性。 | Array | — | — |
|
|
@ -49,15 +49,6 @@ const forced = {
|
||||||
},
|
},
|
||||||
sortable: false
|
sortable: false
|
||||||
}
|
}
|
||||||
// filter: {
|
|
||||||
// headerTemplate: function(h) {
|
|
||||||
// return '#';
|
|
||||||
// },
|
|
||||||
// template: function(h, { row, column }) {
|
|
||||||
// return <el-tag type="primary" style="height: 16px; line-height: 16px; min-width: 40px; text-align: center">{ row[column.property] }</el-tag>;
|
|
||||||
// },
|
|
||||||
// resizable: false
|
|
||||||
// }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const getDefaultColumn = function(type, options) {
|
const getDefaultColumn = function(type, options) {
|
||||||
|
|
|
@ -4,7 +4,7 @@ Function.prototype.bind = require('function-bind');
|
||||||
require('packages/theme-default/src/index.css');
|
require('packages/theme-default/src/index.css');
|
||||||
|
|
||||||
// require all test files (files that ends with .spec.js)
|
// require all test files (files that ends with .spec.js)
|
||||||
const testsContext = require.context('./specs', true, /\.spec$/);
|
const testsContext = require.context('./specs', true, /table\.spec$/);
|
||||||
testsContext.keys().forEach(testsContext);
|
testsContext.keys().forEach(testsContext);
|
||||||
|
|
||||||
// require all src files except main.js for coverage.
|
// require all src files except main.js for coverage.
|
||||||
|
|
|
@ -420,7 +420,6 @@ describe('Table', () => {
|
||||||
}, DELAY);
|
}, DELAY);
|
||||||
});
|
});
|
||||||
|
|
||||||
// TODO
|
|
||||||
it('resizable', done => {
|
it('resizable', done => {
|
||||||
const vm = createTable(
|
const vm = createTable(
|
||||||
'resizable',
|
'resizable',
|
||||||
|
@ -712,15 +711,59 @@ describe('Table', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('sortable', () => {
|
describe('sortable', () => {
|
||||||
const vm = createTable('', '', '', 'sortable');
|
|
||||||
|
|
||||||
it('render', done => {
|
it('render', done => {
|
||||||
|
const vm = createTable('', '', '', 'sortable');
|
||||||
setTimeout(_ => {
|
setTimeout(_ => {
|
||||||
expect(vm.$el.querySelectorAll('.caret-wrapper')).to.length(1);
|
expect(vm.$el.querySelectorAll('.caret-wrapper')).to.length(1);
|
||||||
destroyVM(vm);
|
destroyVM(vm);
|
||||||
done();
|
done();
|
||||||
}, DELAY);
|
}, DELAY);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('sortable method', done => {
|
||||||
|
const vm = createTable(
|
||||||
|
'sortable :sort-method="sortMethod"', '', '', '', {
|
||||||
|
methods: {
|
||||||
|
sortMethod(a, b) {
|
||||||
|
return a.runtime < b.runtime;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
setTimeout(_ => {
|
||||||
|
const elm = vm.$el.querySelector('.caret-wrapper');
|
||||||
|
|
||||||
|
elm.click();
|
||||||
|
setTimeout(_ => {
|
||||||
|
const lastCells = vm.$el.querySelectorAll('.el-table__body-wrapper tbody tr td:last-child');
|
||||||
|
expect(toArray(lastCells).map(node => node.textContent)).to.eql(['100', '95', '92', '92', '80']);
|
||||||
|
destroyVM(vm);
|
||||||
|
done();
|
||||||
|
}, DELAY);
|
||||||
|
}, DELAY);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('sort-change', done => {
|
||||||
|
let result;
|
||||||
|
const vm = createTable('sortable="custom"', '', '', '', {
|
||||||
|
methods: {
|
||||||
|
sortChange(...args) {
|
||||||
|
result = args;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, '@sort-change="sortChange"');
|
||||||
|
setTimeout(_ => {
|
||||||
|
const elm = vm.$el.querySelector('.caret-wrapper');
|
||||||
|
|
||||||
|
elm.click();
|
||||||
|
setTimeout(_ => {
|
||||||
|
expect(result).to.exist;
|
||||||
|
destroyVM(vm);
|
||||||
|
done();
|
||||||
|
}, DELAY);
|
||||||
|
}, DELAY);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('click sortable column', () => {
|
describe('click sortable column', () => {
|
||||||
|
|
Loading…
Reference in New Issue