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 }] | — | — |
 | 
			
		||||
| filter-multiple | 数据过滤的选项是否多选 | Boolean | — | true |
 | 
			
		||||
| filter-method | 数据过滤使用的方法,如果是多选的筛选项,对每一条数据会执行多次,任意一次返回 true 就会显示。 | Function(value, row) | — | — |
 | 
			
		||||
| filteredValue | 选中的数据过滤项,如果需要自定义表头过滤的渲染方式,可能会需要此属性。 | Array | — | — |
 | 
			
		||||
| filtered-value | 选中的数据过滤项,如果需要自定义表头过滤的渲染方式,可能会需要此属性。 | Array | — | — |
 | 
			
		||||
| 
						 | 
				
			
			@ -49,15 +49,6 @@ const forced = {
 | 
			
		|||
    },
 | 
			
		||||
    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) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,7 +4,7 @@ Function.prototype.bind = require('function-bind');
 | 
			
		|||
require('packages/theme-default/src/index.css');
 | 
			
		||||
 | 
			
		||||
// 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);
 | 
			
		||||
 | 
			
		||||
// require all src files except main.js for coverage.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -420,7 +420,6 @@ describe('Table', () => {
 | 
			
		|||
      }, DELAY);
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    // TODO
 | 
			
		||||
    it('resizable', done => {
 | 
			
		||||
      const vm = createTable(
 | 
			
		||||
        'resizable',
 | 
			
		||||
| 
						 | 
				
			
			@ -712,15 +711,59 @@ describe('Table', () => {
 | 
			
		|||
    });
 | 
			
		||||
 | 
			
		||||
    describe('sortable', () => {
 | 
			
		||||
      const vm = createTable('', '', '', 'sortable');
 | 
			
		||||
 | 
			
		||||
      it('render', done => {
 | 
			
		||||
        const vm = createTable('', '', '', 'sortable');
 | 
			
		||||
        setTimeout(_ => {
 | 
			
		||||
          expect(vm.$el.querySelectorAll('.caret-wrapper')).to.length(1);
 | 
			
		||||
          destroyVM(vm);
 | 
			
		||||
          done();
 | 
			
		||||
        }, 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', () => {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue