diff options
Diffstat (limited to 'spec/frontend/packages/list/stores/actions_spec.js')
-rw-r--r-- | spec/frontend/packages/list/stores/actions_spec.js | 277 |
1 files changed, 0 insertions, 277 deletions
diff --git a/spec/frontend/packages/list/stores/actions_spec.js b/spec/frontend/packages/list/stores/actions_spec.js deleted file mode 100644 index adccb7436e1..00000000000 --- a/spec/frontend/packages/list/stores/actions_spec.js +++ /dev/null @@ -1,277 +0,0 @@ -import axios from 'axios'; -import MockAdapter from 'axios-mock-adapter'; -import testAction from 'helpers/vuex_action_helper'; -import Api from '~/api'; -import createFlash from '~/flash'; -import { MISSING_DELETE_PATH_ERROR } from '~/packages/list/constants'; -import * as actions from '~/packages/list/stores/actions'; -import * as types from '~/packages/list/stores/mutation_types'; -import { DELETE_PACKAGE_ERROR_MESSAGE } from '~/packages/shared/constants'; - -jest.mock('~/flash.js'); -jest.mock('~/api.js'); - -describe('Actions Package list store', () => { - const headers = 'bar'; - let mock; - - beforeEach(() => { - Api.projectPackages = jest.fn().mockResolvedValue({ data: 'foo', headers }); - Api.groupPackages = jest.fn().mockResolvedValue({ data: 'baz', headers }); - mock = new MockAdapter(axios); - }); - - afterEach(() => { - mock.restore(); - }); - - describe('requestPackagesList', () => { - const sorting = { - sort: 'asc', - orderBy: 'version', - }; - - const filter = []; - it('should fetch the project packages list when isGroupPage is false', (done) => { - testAction( - actions.requestPackagesList, - undefined, - { config: { isGroupPage: false, resourceId: 1 }, sorting, filter }, - [], - [ - { type: 'setLoading', payload: true }, - { type: 'receivePackagesListSuccess', payload: { data: 'foo', headers } }, - { type: 'setLoading', payload: false }, - ], - () => { - expect(Api.projectPackages).toHaveBeenCalledWith(1, { - params: { page: 1, per_page: 20, sort: sorting.sort, order_by: sorting.orderBy }, - }); - done(); - }, - ); - }); - - it('should fetch the group packages list when isGroupPage is true', (done) => { - testAction( - actions.requestPackagesList, - undefined, - { config: { isGroupPage: true, resourceId: 2 }, sorting, filter }, - [], - [ - { type: 'setLoading', payload: true }, - { type: 'receivePackagesListSuccess', payload: { data: 'baz', headers } }, - { type: 'setLoading', payload: false }, - ], - () => { - expect(Api.groupPackages).toHaveBeenCalledWith(2, { - params: { page: 1, per_page: 20, sort: sorting.sort, order_by: sorting.orderBy }, - }); - done(); - }, - ); - }); - - it('should fetch packages of a certain type when a filter with a type is present', (done) => { - const packageType = 'maven'; - - testAction( - actions.requestPackagesList, - undefined, - { - config: { isGroupPage: false, resourceId: 1 }, - sorting, - filter: [{ type: 'type', value: { data: 'maven' } }], - }, - [], - [ - { type: 'setLoading', payload: true }, - { type: 'receivePackagesListSuccess', payload: { data: 'foo', headers } }, - { type: 'setLoading', payload: false }, - ], - () => { - expect(Api.projectPackages).toHaveBeenCalledWith(1, { - params: { - page: 1, - per_page: 20, - sort: sorting.sort, - order_by: sorting.orderBy, - package_type: packageType, - }, - }); - done(); - }, - ); - }); - - it('should create flash on API error', (done) => { - Api.projectPackages = jest.fn().mockRejectedValue(); - testAction( - actions.requestPackagesList, - undefined, - { config: { isGroupPage: false, resourceId: 2 }, sorting, filter }, - [], - [ - { type: 'setLoading', payload: true }, - { type: 'setLoading', payload: false }, - ], - () => { - expect(createFlash).toHaveBeenCalled(); - done(); - }, - ); - }); - - it('should force the terraform_module type when forceTerraform is true', (done) => { - testAction( - actions.requestPackagesList, - undefined, - { config: { isGroupPage: false, resourceId: 1, forceTerraform: true }, sorting, filter }, - [], - [ - { type: 'setLoading', payload: true }, - { type: 'receivePackagesListSuccess', payload: { data: 'foo', headers } }, - { type: 'setLoading', payload: false }, - ], - () => { - expect(Api.projectPackages).toHaveBeenCalledWith(1, { - params: { - page: 1, - per_page: 20, - sort: sorting.sort, - order_by: sorting.orderBy, - package_type: 'terraform_module', - }, - }); - done(); - }, - ); - }); - }); - - describe('receivePackagesListSuccess', () => { - it('should set received packages', (done) => { - const data = 'foo'; - - testAction( - actions.receivePackagesListSuccess, - { data, headers }, - null, - [ - { type: types.SET_PACKAGE_LIST_SUCCESS, payload: data }, - { type: types.SET_PAGINATION, payload: headers }, - ], - [], - done, - ); - }); - }); - - describe('setInitialState', () => { - it('should commit setInitialState', (done) => { - testAction( - actions.setInitialState, - '1', - null, - [{ type: types.SET_INITIAL_STATE, payload: '1' }], - [], - done, - ); - }); - }); - - describe('setLoading', () => { - it('should commit set main loading', (done) => { - testAction( - actions.setLoading, - true, - null, - [{ type: types.SET_MAIN_LOADING, payload: true }], - [], - done, - ); - }); - }); - - describe('requestDeletePackage', () => { - const payload = { - _links: { - delete_api_path: 'foo', - }, - }; - it('should perform a delete operation on _links.delete_api_path', (done) => { - mock.onDelete(payload._links.delete_api_path).replyOnce(200); - Api.projectPackages = jest.fn().mockResolvedValue({ data: 'foo' }); - - testAction( - actions.requestDeletePackage, - payload, - { pagination: { page: 1 } }, - [], - [ - { type: 'setLoading', payload: true }, - { type: 'requestPackagesList', payload: { page: 1 } }, - ], - done, - ); - }); - - it('should stop the loading and call create flash on api error', (done) => { - mock.onDelete(payload._links.delete_api_path).replyOnce(400); - testAction( - actions.requestDeletePackage, - payload, - null, - [], - [ - { type: 'setLoading', payload: true }, - { type: 'setLoading', payload: false }, - ], - () => { - expect(createFlash).toHaveBeenCalled(); - done(); - }, - ); - }); - - it.each` - property | actionPayload - ${'_links'} | ${{}} - ${'delete_api_path'} | ${{ _links: {} }} - `('should reject and createFlash when $property is missing', ({ actionPayload }, done) => { - testAction(actions.requestDeletePackage, actionPayload, null, [], []).catch((e) => { - expect(e).toEqual(new Error(MISSING_DELETE_PATH_ERROR)); - expect(createFlash).toHaveBeenCalledWith({ - message: DELETE_PACKAGE_ERROR_MESSAGE, - }); - done(); - }); - }); - }); - - describe('setSorting', () => { - it('should commit SET_SORTING', (done) => { - testAction( - actions.setSorting, - 'foo', - null, - [{ type: types.SET_SORTING, payload: 'foo' }], - [], - done, - ); - }); - }); - - describe('setFilter', () => { - it('should commit SET_FILTER', (done) => { - testAction( - actions.setFilter, - 'foo', - null, - [{ type: types.SET_FILTER, payload: 'foo' }], - [], - done, - ); - }); - }); -}); |