Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/frequent_items/store/actions_spec.js')
-rw-r--r--spec/frontend/frequent_items/store/actions_spec.js304
1 files changed, 0 insertions, 304 deletions
diff --git a/spec/frontend/frequent_items/store/actions_spec.js b/spec/frontend/frequent_items/store/actions_spec.js
deleted file mode 100644
index 2feb488da2c..00000000000
--- a/spec/frontend/frequent_items/store/actions_spec.js
+++ /dev/null
@@ -1,304 +0,0 @@
-import MockAdapter from 'axios-mock-adapter';
-import testAction from 'helpers/vuex_action_helper';
-import * as actions from '~/frequent_items/store/actions';
-import * as types from '~/frequent_items/store/mutation_types';
-import state from '~/frequent_items/store/state';
-import AccessorUtilities from '~/lib/utils/accessor';
-import axios from '~/lib/utils/axios_utils';
-import { HTTP_STATUS_INTERNAL_SERVER_ERROR, HTTP_STATUS_OK } from '~/lib/utils/http_status';
-import { useLocalStorageSpy } from 'helpers/local_storage_helper';
-import {
- mockNamespace,
- mockStorageKey,
- mockFrequentProjects,
- mockSearchedProjects,
-} from '../mock_data';
-
-describe('Frequent Items Dropdown Store Actions', () => {
- useLocalStorageSpy();
- let mockedState;
- let mock;
-
- beforeEach(() => {
- mockedState = state();
- mock = new MockAdapter(axios);
-
- mockedState.namespace = mockNamespace;
- mockedState.storageKey = mockStorageKey;
- });
-
- afterEach(() => {
- mock.restore();
- });
-
- describe('setNamespace', () => {
- it('should set namespace', () => {
- return testAction(
- actions.setNamespace,
- mockNamespace,
- mockedState,
- [{ type: types.SET_NAMESPACE, payload: mockNamespace }],
- [],
- );
- });
- });
-
- describe('setStorageKey', () => {
- it('should set storage key', () => {
- return testAction(
- actions.setStorageKey,
- mockStorageKey,
- mockedState,
- [{ type: types.SET_STORAGE_KEY, payload: mockStorageKey }],
- [],
- );
- });
- });
-
- describe('toggleItemsListEditablity', () => {
- it('should toggle items list editablity', () => {
- return testAction(
- actions.toggleItemsListEditablity,
- null,
- mockedState,
- [{ type: types.TOGGLE_ITEMS_LIST_EDITABILITY }],
- [],
- );
- });
- });
-
- describe('requestFrequentItems', () => {
- it('should request frequent items', () => {
- return testAction(
- actions.requestFrequentItems,
- null,
- mockedState,
- [{ type: types.REQUEST_FREQUENT_ITEMS }],
- [],
- );
- });
- });
-
- describe('receiveFrequentItemsSuccess', () => {
- it('should set frequent items', () => {
- return testAction(
- actions.receiveFrequentItemsSuccess,
- mockFrequentProjects,
- mockedState,
- [{ type: types.RECEIVE_FREQUENT_ITEMS_SUCCESS, payload: mockFrequentProjects }],
- [],
- );
- });
- });
-
- describe('receiveFrequentItemsError', () => {
- it('should set frequent items error state', () => {
- return testAction(
- actions.receiveFrequentItemsError,
- null,
- mockedState,
- [{ type: types.RECEIVE_FREQUENT_ITEMS_ERROR }],
- [],
- );
- });
- });
-
- describe('fetchFrequentItems', () => {
- it('should dispatch `receiveFrequentItemsSuccess`', () => {
- mockedState.namespace = mockNamespace;
- mockedState.storageKey = mockStorageKey;
-
- return testAction(
- actions.fetchFrequentItems,
- null,
- mockedState,
- [],
- [{ type: 'requestFrequentItems' }, { type: 'receiveFrequentItemsSuccess', payload: [] }],
- );
- });
-
- it('should dispatch `receiveFrequentItemsError`', () => {
- jest.spyOn(AccessorUtilities, 'canUseLocalStorage').mockReturnValue(false);
- mockedState.namespace = mockNamespace;
- mockedState.storageKey = mockStorageKey;
-
- return testAction(
- actions.fetchFrequentItems,
- null,
- mockedState,
- [],
- [{ type: 'requestFrequentItems' }, { type: 'receiveFrequentItemsError' }],
- );
- });
- });
-
- describe('requestSearchedItems', () => {
- it('should request searched items', () => {
- return testAction(
- actions.requestSearchedItems,
- null,
- mockedState,
- [{ type: types.REQUEST_SEARCHED_ITEMS }],
- [],
- );
- });
- });
-
- describe('receiveSearchedItemsSuccess', () => {
- it('should set searched items', () => {
- return testAction(
- actions.receiveSearchedItemsSuccess,
- mockSearchedProjects,
- mockedState,
- [{ type: types.RECEIVE_SEARCHED_ITEMS_SUCCESS, payload: mockSearchedProjects }],
- [],
- );
- });
- });
-
- describe('receiveSearchedItemsError', () => {
- it('should set searched items error state', () => {
- return testAction(
- actions.receiveSearchedItemsError,
- null,
- mockedState,
- [{ type: types.RECEIVE_SEARCHED_ITEMS_ERROR }],
- [],
- );
- });
- });
-
- describe('fetchSearchedItems', () => {
- beforeEach(() => {
- gon.api_version = 'v4';
- });
-
- it('should dispatch `receiveSearchedItemsSuccess`', () => {
- mock
- .onGet(/\/api\/v4\/projects.json(.*)$/)
- .replyOnce(HTTP_STATUS_OK, mockSearchedProjects, {});
-
- return testAction(
- actions.fetchSearchedItems,
- null,
- mockedState,
- [],
- [
- { type: 'requestSearchedItems' },
- {
- type: 'receiveSearchedItemsSuccess',
- payload: { data: mockSearchedProjects, headers: {} },
- },
- ],
- );
- });
-
- it('should dispatch `receiveSearchedItemsError`', () => {
- gon.api_version = 'v4';
- mock.onGet(/\/api\/v4\/projects.json(.*)$/).replyOnce(HTTP_STATUS_INTERNAL_SERVER_ERROR);
-
- return testAction(
- actions.fetchSearchedItems,
- null,
- mockedState,
- [],
- [{ type: 'requestSearchedItems' }, { type: 'receiveSearchedItemsError' }],
- );
- });
- });
-
- describe('setSearchQuery', () => {
- it('should commit query and dispatch `fetchSearchedItems` when query is present', () => {
- return testAction(
- actions.setSearchQuery,
- { query: 'test' },
- mockedState,
- [{ type: types.SET_SEARCH_QUERY, payload: { query: 'test' } }],
- [{ type: 'fetchSearchedItems', payload: { query: 'test' } }],
- );
- });
-
- it('should commit query and dispatch `fetchFrequentItems` when query is empty', () => {
- return testAction(
- actions.setSearchQuery,
- null,
- mockedState,
- [{ type: types.SET_SEARCH_QUERY, payload: null }],
- [{ type: 'fetchFrequentItems' }],
- );
- });
- });
-
- describe('removeFrequentItemSuccess', () => {
- it('should remove frequent item on success', () => {
- return testAction(
- actions.removeFrequentItemSuccess,
- { itemId: 1 },
- mockedState,
- [
- {
- type: types.RECEIVE_REMOVE_FREQUENT_ITEM_SUCCESS,
- payload: { itemId: 1 },
- },
- ],
- [],
- );
- });
- });
-
- describe('removeFrequentItemError', () => {
- it('should should not remove frequent item on failure', () => {
- return testAction(
- actions.removeFrequentItemError,
- null,
- mockedState,
- [{ type: types.RECEIVE_REMOVE_FREQUENT_ITEM_ERROR }],
- [],
- );
- });
- });
-
- describe('removeFrequentItem', () => {
- beforeEach(() => {
- mockedState.items = [...mockFrequentProjects];
- window.localStorage.setItem(mockStorageKey, JSON.stringify(mockFrequentProjects));
- });
-
- it('should remove provided itemId from localStorage', () => {
- jest.spyOn(AccessorUtilities, 'canUseLocalStorage').mockReturnValue(true);
-
- actions.removeFrequentItem(
- { commit: jest.fn(), dispatch: jest.fn(), state: mockedState },
- mockFrequentProjects[0].id,
- );
-
- expect(window.localStorage.getItem(mockStorageKey)).toBe(
- JSON.stringify(mockFrequentProjects.slice(1)), // First item was removed
- );
- });
-
- it('should dispatch `removeFrequentItemSuccess` on localStorage update success', () => {
- jest.spyOn(AccessorUtilities, 'canUseLocalStorage').mockReturnValue(true);
-
- return testAction(
- actions.removeFrequentItem,
- mockFrequentProjects[0].id,
- mockedState,
- [],
- [{ type: 'removeFrequentItemSuccess', payload: mockFrequentProjects[0].id }],
- );
- });
-
- it('should dispatch `removeFrequentItemError` on localStorage update failure', () => {
- jest.spyOn(AccessorUtilities, 'canUseLocalStorage').mockReturnValue(false);
-
- return testAction(
- actions.removeFrequentItem,
- mockFrequentProjects[0].id,
- mockedState,
- [],
- [{ type: 'removeFrequentItemError' }],
- );
- });
- });
-});