123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- import { createTest, createVue, destroyVM } from '../util';
- import Transfer from 'packages/transfer';
- describe('Transfer', () => {
- let vm;
- const getTestData = () => {
- const data = [];
- for (let i = 1; i <= 15; i++) {
- data.push({
- key: i,
- label: `备选项 ${ i }`,
- disabled: i % 4 === 0
- });
- }
- return data;
- };
- const createTransfer = (props, opts) => {
- return createVue(Object.assign({
- template: `
- <el-transfer :data="testData" ref="transfer" ${props}>
- </el-transfer>
- `,
- created() {
- this.testData = getTestData();
- }
- }, opts));
- };
- afterEach(() => {
- destroyVM(vm);
- });
- it('create', () => {
- vm = createTest(Transfer, true);
- expect(vm.$el).to.exist;
- });
- it('default target list', () => {
- vm = createTransfer('v-model="value"', {
- data() {
- return {
- value: [1, 4]
- };
- }
- });
- expect(vm.$refs.transfer.sourceData.length).to.equal(13);
- });
- it('filterable', done => {
- vm = createTransfer('v-model="value" filterable :filter-method="method"', {
- data() {
- return {
- value: [],
- method(query, option) {
- return option.key === Number(query);
- }
- };
- }
- });
- const transfer = vm.$refs.transfer;
- const leftList = transfer.$el.querySelector('.el-transfer-panel').__vue__;
- leftList.query = '1';
- setTimeout(_ => {
- expect(leftList.filteredData.length).to.equal(1);
- done();
- }, 50);
- });
- it('transfer', done => {
- vm = createTransfer('v-model="value" :left-default-checked="[2, 3]" :right-default-checked="[1]"', {
- data() {
- return {
- value: [1, 4]
- };
- }
- });
- const transfer = vm.$refs.transfer;
- setTimeout(_ => {
- transfer.addToLeft();
- setTimeout(_ => {
- expect(transfer.sourceData.length).to.equal(14);
- transfer.addToRight();
- setTimeout(_ => {
- expect(transfer.sourceData.length).to.equal(12);
- done();
- }, 50);
- }, 50);
- }, 50);
- });
- it('customize', () => {
- vm = createTransfer('v-model="value" :titles="titles" :render-content="renderFunc" :format="format"', {
- data() {
- return {
- value: [2],
- titles: ['表1', '表2'],
- format: { noChecked: 'no', hasChecked: 'has' },
- renderFunc(h, option) {
- return <span>{ option.key } - { option.label }</span>;
- }
- };
- }
- });
- const transfer = vm.$refs.transfer.$el;
- const label = transfer.querySelector('.el-transfer-panel__header .el-checkbox__label');
- expect(label.innerText.indexOf('表1') > -1).to.true;
- expect(transfer.querySelector('.el-transfer-panel__list .el-checkbox__label span').innerText).to.equal('1 - 备选项 1');
- expect(label.querySelector('span').innerText).to.equal('no');
- });
- it('check', () => {
- vm = createTransfer('v-model="value"', {
- data() {
- return {
- value: []
- };
- }
- });
- const leftList = vm.$refs.transfer.$el.querySelector('.el-transfer-panel').__vue__;
- leftList.handleAllCheckedChange({ target: { checked: true } });
- expect(leftList.checked.length).to.equal(12);
- });
- describe('target order', () => {
- it('original(default)', done => {
- vm = createTransfer('v-model="value" :left-default-checked="[2, 3]"', {
- data() {
- return {
- value: [1, 4]
- };
- }
- });
- const transfer = vm.$refs.transfer;
- setTimeout(() => {
- transfer.addToRight();
- setTimeout(() => {
- const targetItems = [].slice.call(vm.$el.querySelectorAll('.el-transfer__buttons + .el-transfer-panel .el-transfer-panel__body .el-checkbox__label span'));
- expect(targetItems.map(item => item.innerText)).to.deep.equal(['备选项 1', '备选项 2', '备选项 3', '备选项 4']);
- done();
- }, 50);
- }, 50);
- });
- it('push', done => {
- vm = createTransfer('v-model="value" :left-default-checked="[2, 3]" target-order="push"', {
- data() {
- return {
- value: [1, 4]
- };
- }
- });
- const transfer = vm.$refs.transfer;
- setTimeout(() => {
- transfer.addToRight();
- setTimeout(() => {
- const targetItems = [].slice.call(vm.$el.querySelectorAll('.el-transfer__buttons + .el-transfer-panel .el-transfer-panel__body .el-checkbox__label span'));
- expect(targetItems.map(item => item.innerText)).to.deep.equal(['备选项 1', '备选项 4', '备选项 2', '备选项 3']);
- done();
- }, 50);
- }, 50);
- });
- it('unshift', done => {
- vm = createTransfer('v-model="value" :left-default-checked="[2, 3]" target-order="unshift"', {
- data() {
- return {
- value: [1, 4]
- };
- }
- });
- const transfer = vm.$refs.transfer;
- setTimeout(() => {
- transfer.addToRight();
- setTimeout(() => {
- const targetItems = [].slice.call(vm.$el.querySelectorAll('.el-transfer__buttons + .el-transfer-panel .el-transfer-panel__body .el-checkbox__label span'));
- expect(targetItems.map(item => item.innerText)).to.deep.equal(['备选项 2', '备选项 3', '备选项 1', '备选项 4']);
- done();
- }, 50);
- }, 50);
- });
- });
- });
|