import { mount } from 'avoriaz';
import Circle from 'packages/circle';

describe('Circle', () => {
  let wrapper;
  afterEach(() => {
    wrapper && wrapper.destroy();
  });

  it('create a circle', () => {
    wrapper = mount(Circle, {
      propsData: {
        text: 'test'
      }
    });

    expect(wrapper.hasClass('van-circle')).to.be.true;
    expect(wrapper.find('.van-circle__text')[0].text()).to.equal('test');
  });

  it('circle rate', done => {
    let currentRate = 0;
    wrapper = mount(Circle, {
      propsData: {
        rate: 0,
        value: 0,
        clockwise: false
      }
    });
    wrapper.vm.$on('input', rate => {
      currentRate = rate;
    });
    wrapper.vm.rate = 50;

    setTimeout(() => {
      expect(currentRate).to.equal(50);
      done();
    }, 100);
  });

  it('circle animation', done => {
    let currentRate = 0;
    wrapper = mount(Circle, {
      propsData: {
        rate: 0,
        value: 0,
        speed: 500,
        clockwise: false
      }
    });
    wrapper.vm.$on('input', rate => {
      currentRate = rate;
    });
    wrapper.vm.rate = 50;

    setTimeout(() => {
      expect(currentRate === 50).to.be.false;
      setTimeout(() => {
        expect(currentRate === 50).to.be.true;
        done();
      }, 200);
    }, 50);
  });
});