|
@@ -8,11 +8,11 @@ const toArray = function(obj) {
|
|
|
|
|
|
const getTestData = function() {
|
|
|
return [
|
|
|
- { name: 'Toy Story', release: '1995-11-22', director: 'John Lasseter', runtime: 80 },
|
|
|
- { name: 'A Bug\'s Life', release: '1998-11-25', director: 'John Lasseter', runtime: 95 },
|
|
|
- { name: 'Toy Story 2', release: '1999-11-24', director: 'John Lasseter', runtime: 92 },
|
|
|
- { name: 'Monsters, Inc.', release: '2001-11-2', director: 'Peter Docter', runtime: 92 },
|
|
|
- { name: 'Finding Nemo', release: '2003-5-30', director: 'Andrew Stanton', runtime: 100 }
|
|
|
+ { id: 1, name: 'Toy Story', release: '1995-11-22', director: 'John Lasseter', runtime: 80 },
|
|
|
+ { id: 2, name: 'A Bug\'s Life', release: '1998-11-25', director: 'John Lasseter', runtime: 95 },
|
|
|
+ { id: 3, name: 'Toy Story 2', release: '1999-11-24', director: 'John Lasseter', runtime: 92 },
|
|
|
+ { id: 4, name: 'Monsters, Inc.', release: '2001-11-2', director: 'Peter Docter', runtime: 92 },
|
|
|
+ { id: 5, name: 'Finding Nemo', release: '2003-5-30', director: 'Andrew Stanton', runtime: 100 }
|
|
|
];
|
|
|
};
|
|
|
|
|
@@ -27,6 +27,7 @@ describe('Table', () => {
|
|
|
const vm = createVue({
|
|
|
template: `
|
|
|
<el-table :data="testData">
|
|
|
+ <el-table-column prop="id" />
|
|
|
<el-table-column prop="name" label="片名" />
|
|
|
<el-table-column prop="release" label="发行日期" />
|
|
|
<el-table-column prop="director" label="导演" />
|
|
@@ -843,12 +844,12 @@ describe('Table', () => {
|
|
|
vm.$el.querySelectorAll('.el-checkbox')[1].click();
|
|
|
|
|
|
setTimeout(_ => {
|
|
|
- expect(vm.$el.querySelectorAll('.el-checkbox__inner.is-checked')).to.length(1);
|
|
|
+ expect(vm.$el.querySelectorAll('.el-checkbox__input.is-checked')).to.length(1);
|
|
|
// go to second page
|
|
|
vm.testData = getData(1);
|
|
|
setTimeout(_ => {
|
|
|
// expect no checked
|
|
|
- expect(vm.$el.querySelectorAll('.el-checkbox__inner.is-checked')).to.length(0);
|
|
|
+ expect(vm.$el.querySelectorAll('.el-checkbox__input.is-checked')).to.length(0);
|
|
|
// click first checkbox
|
|
|
vm.$el.querySelectorAll('.el-checkbox')[1].click();
|
|
|
vm.$el.querySelectorAll('.el-checkbox')[2].click();
|
|
@@ -856,11 +857,11 @@ describe('Table', () => {
|
|
|
// back first page
|
|
|
vm.testData = getData();
|
|
|
setTimeout(_ => {
|
|
|
- expect(vm.$el.querySelectorAll('.el-checkbox__inner.is-checked')).to.length(1);
|
|
|
+ expect(vm.$el.querySelectorAll('.el-checkbox__input.is-checked')).to.length(1);
|
|
|
// clear
|
|
|
vm.$refs.table.clearSelection();
|
|
|
setTimeout(_ => {
|
|
|
- expect(vm.$el.querySelectorAll('.el-checkbox__inner.is-checked')).to.length(0);
|
|
|
+ expect(vm.$el.querySelectorAll('.el-checkbox__input.is-checked')).to.length(0);
|
|
|
destroyVM(vm);
|
|
|
done();
|
|
|
}, DELAY);
|
|
@@ -957,6 +958,90 @@ describe('Table', () => {
|
|
|
}, DELAY);
|
|
|
});
|
|
|
});
|
|
|
+
|
|
|
+ describe('= expand', () => {
|
|
|
+ const createInstance = function(extra) {
|
|
|
+ extra = extra || '';
|
|
|
+ return createVue({
|
|
|
+ template: `
|
|
|
+ <el-table row-key="id" :data="testData" @expand="handleExpand" ${extra}>
|
|
|
+ <el-table-column type="expand" inline-template>
|
|
|
+ <div>{{row.name}}</div>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="release" label="release" />
|
|
|
+ <el-table-column prop="director" label="director" />
|
|
|
+ <el-table-column prop="runtime" label="runtime" />
|
|
|
+ </el-table>
|
|
|
+ `,
|
|
|
+
|
|
|
+ created() {
|
|
|
+ this.testData = getTestData();
|
|
|
+ },
|
|
|
+
|
|
|
+ data() {
|
|
|
+ return { expandCount: 0, expandRowKeys: [] };
|
|
|
+ },
|
|
|
+
|
|
|
+ methods: {
|
|
|
+ handleExpand() {
|
|
|
+ this.expandCount++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }, true);
|
|
|
+ };
|
|
|
+
|
|
|
+ it('works', done => {
|
|
|
+ const vm = createInstance();
|
|
|
+ setTimeout(_ => {
|
|
|
+ expect(vm.$el.querySelectorAll('td.el-table__expand-column').length).to.equal(5);
|
|
|
+ destroyVM(vm);
|
|
|
+ done();
|
|
|
+ }, DELAY);
|
|
|
+ });
|
|
|
+
|
|
|
+ it('should expand when click icon', done => {
|
|
|
+ const vm = createInstance();
|
|
|
+ setTimeout(_ => {
|
|
|
+ vm.$el.querySelector('td.el-table__expand-column .el-table__expand-icon').click();
|
|
|
+ setTimeout(_ => {
|
|
|
+ expect(vm.$el.querySelectorAll('.el-table__expanded-cell').length).to.equal(1);
|
|
|
+ expect(vm.expandCount).to.equal(1);
|
|
|
+ vm.$el.querySelector('td.el-table__expand-column .el-table__expand-icon').click();
|
|
|
+ setTimeout(_ => {
|
|
|
+ expect(vm.$el.querySelectorAll('.el-table__expanded-cell').length).to.equal(0);
|
|
|
+ expect(vm.expandCount).to.equal(2);
|
|
|
+ destroyVM(vm);
|
|
|
+ done();
|
|
|
+ }, DELAY);
|
|
|
+ }, DELAY);
|
|
|
+ }, DELAY);
|
|
|
+ });
|
|
|
+
|
|
|
+ it('should set expanded rows using expandRowKeys', done => {
|
|
|
+ const vm = createInstance(':expand-row-keys="expandRowKeys"');
|
|
|
+ setTimeout(_ => {
|
|
|
+ vm.expandRowKeys = [1, 3];
|
|
|
+ setTimeout(_ => {
|
|
|
+ expect(vm.$el.querySelectorAll('.el-table__expanded-cell').length).to.equal(2);
|
|
|
+ vm.expandRowKeys = [2];
|
|
|
+ setTimeout(_ => {
|
|
|
+ expect(vm.$el.querySelectorAll('.el-table__expanded-cell').length).to.equal(1);
|
|
|
+ destroyVM(vm);
|
|
|
+ done();
|
|
|
+ }, DELAY);
|
|
|
+ }, DELAY);
|
|
|
+ }, DELAY);
|
|
|
+ });
|
|
|
+
|
|
|
+ it('should default-expand-all when default-expand-all is true', done => {
|
|
|
+ const vm = createInstance('default-expand-all');
|
|
|
+ setTimeout(_ => {
|
|
|
+ expect(vm.$el.querySelectorAll('.el-table__expanded-cell').length).to.equal(5);
|
|
|
+ destroyVM(vm);
|
|
|
+ done();
|
|
|
+ }, DELAY);
|
|
|
+ });
|
|
|
+ });
|
|
|
});
|
|
|
|
|
|
describe('sortable', () => {
|
|
@@ -981,7 +1066,7 @@ describe('Table', () => {
|
|
|
});
|
|
|
|
|
|
setTimeout(_ => {
|
|
|
- const elm = vm.$el.querySelector('.caret-wrapper');
|
|
|
+ const elm = vm.$el.querySelector('.caret-wrapper > .ascending');
|
|
|
|
|
|
elm.click();
|
|
|
setTimeout(_ => {
|
|
@@ -1003,7 +1088,7 @@ describe('Table', () => {
|
|
|
}
|
|
|
}, '@sort-change="sortChange"');
|
|
|
setTimeout(_ => {
|
|
|
- const elm = vm.$el.querySelector('.caret-wrapper');
|
|
|
+ const elm = vm.$el.querySelector('.caret-wrapper > .ascending');
|
|
|
|
|
|
elm.click();
|
|
|
setTimeout(_ => {
|
|
@@ -1019,7 +1104,7 @@ describe('Table', () => {
|
|
|
const vm = createTable('', '', '', 'sortable');
|
|
|
|
|
|
it('ascending', done => {
|
|
|
- const elm = vm.$el.querySelector('.caret-wrapper');
|
|
|
+ const elm = vm.$el.querySelector('.caret-wrapper > .ascending');
|
|
|
|
|
|
elm.click();
|
|
|
setTimeout(_ => {
|
|
@@ -1031,7 +1116,7 @@ describe('Table', () => {
|
|
|
});
|
|
|
|
|
|
it('descending', done => {
|
|
|
- const elm = vm.$el.querySelector('.caret-wrapper');
|
|
|
+ const elm = vm.$el.querySelector('.caret-wrapper > .descending');
|
|
|
|
|
|
elm.click();
|
|
|
setTimeout(_ => {
|
|
@@ -1215,6 +1300,43 @@ describe('Table', () => {
|
|
|
}, DELAY);
|
|
|
});
|
|
|
|
|
|
+ it('header-align', (done) => {
|
|
|
+ const vm = createVue({
|
|
|
+ template: `
|
|
|
+ <el-table :data="testData">
|
|
|
+ <el-table-column prop="name" :align="align" :header-align="headerAlign"/>
|
|
|
+ </el-table>
|
|
|
+ `,
|
|
|
+
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ align: 'left',
|
|
|
+ headerAlign: null
|
|
|
+ };
|
|
|
+ },
|
|
|
+
|
|
|
+ created() {
|
|
|
+ this.testData = getTestData();
|
|
|
+ }
|
|
|
+ }, true);
|
|
|
+
|
|
|
+ setTimeout(() => {
|
|
|
+ expect(vm.$el.querySelectorAll('.el-table__header th.is-left').length > 0).to.be.true;
|
|
|
+ expect(vm.$el.querySelectorAll('.el-table__header td.is-center').length === 0).to.be.true;
|
|
|
+ vm.align = 'right';
|
|
|
+ vm.$nextTick(() => {
|
|
|
+ expect(vm.$el.querySelectorAll('.el-table__header th.is-right').length > 0).to.be.true;
|
|
|
+ expect(vm.$el.querySelectorAll('.el-table__header td.is-center').length === 0).to.be.true;
|
|
|
+ vm.headerAlign = 'center';
|
|
|
+ vm.$nextTick(() => {
|
|
|
+ expect(vm.$el.querySelectorAll('.el-table__header th.is-right').length === 0).to.be.true;
|
|
|
+ expect(vm.$el.querySelectorAll('.el-table__header td.is-center').length > 0).to.be.true;
|
|
|
+ });
|
|
|
+ });
|
|
|
+ done();
|
|
|
+ }, DELAY);
|
|
|
+ });
|
|
|
+
|
|
|
it('width', (done) => {
|
|
|
const vm = createVue({
|
|
|
template: `
|