import avoriaz, { mount } from 'avoriaz';
import sinon from 'sinon';
import { expect } from 'chai';
import Vuex from 'vuex';
import GeneratePalette from '../../../src/components/GeneratePalette';


describe('GeneratePalette.vue', () => {
  it('calls store action generateRandomPalette when random-palette is clicked', () => {
    avoriaz.use(Vuex);
    const actions = {
      generateRandomPalette: sinon.stub(),
      generatePalette: sinon.stub(),
    };
    const store = new Vuex.Store({
      modules: {
        palette: {
          state: {},
          actions,
        },
      },
    });
    const wrapper = mount(GeneratePalette, { store });
    const input = wrapper.find('#generate-palette')[0];
    input.element.value = '#666';
    input.simulate('input');
    expect(actions.generatePalette.calledOnce).to.equal(true);
  });

  it('calls store action generateRandomPalette when random-palette is clicked', () => {
    avoriaz.use(Vuex);
    const actions = {
      generateRandomPalette: sinon.stub(),
      generatePalette: sinon.stub(),
    };
    const store = new Vuex.Store({
      modules: {
        palette: {
          state: {},
          actions,
        },
      },
    });
    const wrapper = mount(GeneratePalette, { store });
    wrapper.find('#random-palette')[0].simulate('click');
    expect(actions.generateRandomPalette.calledOnce).to.equal(true);
  });
});

@@ -190,16 +190,35 @@
 ette';%0A%0A
+avoriaz.use(Vuex);%0A
 %0Adescrib
@@ -256,126 +256,59 @@
 %7B%0A  
-it('calls store action generateRandomPalette when random-palette is clicked', () =%3E %7B%0A    avoriaz.use(Vuex);%0A    const
+let actions;%0A  let store;%0A%0A  beforeEach(() =%3E %7B%0A   
  act
@@ -322,38 +322,32 @@
 %7B%0A      generate
-Random
 Palette: sinon.s
@@ -359,32 +359,38 @@
 ,%0A      generate
+Random
 Palette: sinon.s
@@ -399,38 +399,32 @@
 b(),%0A    %7D;%0A    
-const 
 store = new Vuex
@@ -436,48 +436,8 @@
 e(%7B%0A
-      modules: %7B%0A        palette: %7B%0A    
     
@@ -447,36 +447,32 @@
 tate: %7B%7D,%0A      
-    
 actions,%0A       
@@ -468,39 +468,114 @@
 ns,%0A    
-    %7D,%0A      %7D,%0A    %7D);
+%7D);%0A  %7D);%0A%0A  it('calls store action generateRandomPalette when random-palette is clicked', () =%3E %7B
 %0A    con
@@ -903,279 +903,8 @@
 %3E %7B%0A
-    avoriaz.use(Vuex);%0A    const actions = %7B%0A      generateRandomPalette: sinon.stub(),%0A      generatePalette: sinon.stub(),%0A    %7D;%0A    const store = new Vuex.Store(%7B%0A      modules: %7B%0A        palette: %7B%0A          state: %7B%7D,%0A          actions,%0A        %7D,%0A      %7D,%0A    %7D);%0A
     

Refactor GeneratePalette test