import { createVue, destroyVM } from '../util';
import Vue from 'vue';
describe('Steps', () => {
  let vm;
  afterEach(() => {
    destroyVM(vm);
  });
  it('create', () => {
    vm = createVue(`
      
        
        
        
      
    `);
    expect(vm.$el.querySelectorAll('.el-step')).to.length(3);
  });
  it('space', done => {
    vm = createVue(`
      
        
        
        
        
      
    `);
    const vm2 = createVue(`
      
        
        
        
        
      
    `);
    Vue.nextTick(_ => {
      expect(vm.$el.querySelector('.el-step')).have.deep.property('style.width').equal('25%');
      expect(vm2.$el.querySelector('.el-step')).have.deep.property('style.width').equal('100px');
      done();
    });
  });
  it('processStatus', done => {
    vm = createVue(`
      
        
        
        
      
    `);
    vm.$nextTick(_ => {
      expect(vm.$el.querySelectorAll('.el-step__head.is-error')).to.length(1);
      done();
    });
  });
  it('finishStatus', done => {
    vm = createVue(`
      
        
        
      
    `);
    vm.$nextTick(_ => {
      expect(vm.$el.querySelectorAll('.el-step__head.is-error')).to.length(1);
      done();
    });
  });
  it('active', done => {
    vm = createVue({
      template: `
        
          
          
        
      `,
      data() {
        return { active: 0 };
      }
    });
    vm.$nextTick(_ => {
      expect(vm.$el.querySelectorAll('.el-step__head.is-error')).to.length(0);
      vm.active = 2;
      vm.$nextTick(_ => {
        expect(vm.$el.querySelectorAll('.el-step__head.is-error')).to.length(2);
        done();
      });
    });
  });
  it('create vertical', () => {
    vm = createVue(`
      
        
        
      
    `);
    expect(vm.$el.querySelector('.is-vertical')).to.exist;
  });
  it('vertical:height', done => {
    vm = createVue(`
      
        
        
      
    `);
    vm.$nextTick(_ => {
      expect(vm.$el.querySelector('.el-step')).have.deep.property('style.height').equal('200px');
      done();
    });
  });
  it('step:status=error', done => {
    vm = createVue(`
      
        
        
        
      
    `);
    vm.$nextTick(_ => {
      const errorLine = vm.$el.querySelector('.el-step:nth-child(2) .el-step__line-inner');
      expect(errorLine.getBoundingClientRect().width).to.equal(0);
      const nextStep = vm.$el.querySelector('.el-step:nth-child(3) .el-step__head');
      expect(nextStep.classList.contains('is-wait')).to.equal(true);
      done();
    });
  });
});