123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- 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);
- });
- });
|