summaryrefslogtreecommitdiff
path: root/spec/frontend/vue_shared/components/gl_toggle_vuex_spec.js
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/vue_shared/components/gl_toggle_vuex_spec.js')
-rw-r--r--spec/frontend/vue_shared/components/gl_toggle_vuex_spec.js114
1 files changed, 0 insertions, 114 deletions
diff --git a/spec/frontend/vue_shared/components/gl_toggle_vuex_spec.js b/spec/frontend/vue_shared/components/gl_toggle_vuex_spec.js
deleted file mode 100644
index ac670b622b1..00000000000
--- a/spec/frontend/vue_shared/components/gl_toggle_vuex_spec.js
+++ /dev/null
@@ -1,114 +0,0 @@
-import { GlToggle } from '@gitlab/ui';
-import { mount, createLocalVue } from '@vue/test-utils';
-import Vuex from 'vuex';
-import GlToggleVuex from '~/vue_shared/components/gl_toggle_vuex.vue';
-
-const localVue = createLocalVue();
-localVue.use(Vuex);
-
-describe('GlToggleVuex component', () => {
- let wrapper;
- let store;
-
- const findButton = () => wrapper.find('button');
-
- const createWrapper = (props = {}) => {
- wrapper = mount(GlToggleVuex, {
- localVue,
- store,
- propsData: {
- stateProperty: 'toggleState',
- ...props,
- },
- });
- };
-
- beforeEach(() => {
- store = new Vuex.Store({
- state: {
- toggleState: false,
- },
- actions: {
- setToggleState: ({ commit }, { key, value }) => commit('setToggleState', { key, value }),
- },
- mutations: {
- setToggleState: (state, { key, value }) => {
- state[key] = value;
- },
- },
- });
- createWrapper();
- });
-
- afterEach(() => {
- wrapper.destroy();
- });
-
- it('renders gl-toggle', () => {
- expect(wrapper.find(GlToggle).exists()).toBe(true);
- });
-
- it('properly computes default value for setAction', () => {
- expect(wrapper.props('setAction')).toBe('setToggleState');
- });
-
- describe('without a store module', () => {
- it('calls action with new value when value changes', () => {
- jest.spyOn(store, 'dispatch');
-
- findButton().trigger('click');
- expect(store.dispatch).toHaveBeenCalledWith('setToggleState', {
- key: 'toggleState',
- value: true,
- });
- });
-
- it('updates store property when value changes', () => {
- findButton().trigger('click');
- expect(store.state.toggleState).toBe(true);
- });
- });
-
- describe('with a store module', () => {
- beforeEach(() => {
- store = new Vuex.Store({
- modules: {
- someModule: {
- namespaced: true,
- state: {
- toggleState: false,
- },
- actions: {
- setToggleState: ({ commit }, { key, value }) =>
- commit('setToggleState', { key, value }),
- },
- mutations: {
- setToggleState: (state, { key, value }) => {
- state[key] = value;
- },
- },
- },
- },
- });
-
- createWrapper({
- storeModule: 'someModule',
- });
- });
-
- it('calls action with new value when value changes', () => {
- jest.spyOn(store, 'dispatch');
-
- findButton().trigger('click');
- expect(store.dispatch).toHaveBeenCalledWith('someModule/setToggleState', {
- key: 'toggleState',
- value: true,
- });
- });
-
- it('updates store property when value changes', () => {
- findButton().trigger('click');
- expect(store.state.someModule.toggleState).toBe(true);
- });
- });
-});