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/packages/details/store/actions_spec.js')
-rw-r--r--spec/frontend/packages/details/store/actions_spec.js76
1 files changed, 76 insertions, 0 deletions
diff --git a/spec/frontend/packages/details/store/actions_spec.js b/spec/frontend/packages/details/store/actions_spec.js
new file mode 100644
index 00000000000..6dfb2b63f85
--- /dev/null
+++ b/spec/frontend/packages/details/store/actions_spec.js
@@ -0,0 +1,76 @@
+import testAction from 'helpers/vuex_action_helper';
+import Api from '~/api';
+import { deprecatedCreateFlash as createFlash } from '~/flash';
+import fetchPackageVersions from '~/packages/details/store/actions';
+import * as types from '~/packages/details/store/mutation_types';
+import { FETCH_PACKAGE_VERSIONS_ERROR } from '~/packages/details/constants';
+import { npmPackage as packageEntity } from '../../mock_data';
+
+jest.mock('~/flash.js');
+jest.mock('~/api.js');
+
+describe('Actions Package details store', () => {
+ describe('fetchPackageVersions', () => {
+ it('should fetch the package versions', done => {
+ Api.projectPackage = jest.fn().mockResolvedValue({ data: packageEntity });
+
+ testAction(
+ fetchPackageVersions,
+ undefined,
+ { packageEntity },
+ [
+ { type: types.SET_LOADING, payload: true },
+ { type: types.SET_PACKAGE_VERSIONS, payload: packageEntity.versions },
+ { type: types.SET_LOADING, payload: false },
+ ],
+ [],
+ () => {
+ expect(Api.projectPackage).toHaveBeenCalledWith(
+ packageEntity.project_id,
+ packageEntity.id,
+ );
+ done();
+ },
+ );
+ });
+
+ it("does not set the versions if they don't exist", done => {
+ Api.projectPackage = jest.fn().mockResolvedValue({ data: { packageEntity, versions: null } });
+
+ testAction(
+ fetchPackageVersions,
+ undefined,
+ { packageEntity },
+ [{ type: types.SET_LOADING, payload: true }, { type: types.SET_LOADING, payload: false }],
+ [],
+ () => {
+ expect(Api.projectPackage).toHaveBeenCalledWith(
+ packageEntity.project_id,
+ packageEntity.id,
+ );
+ done();
+ },
+ );
+ });
+
+ it('should create flash on API error', done => {
+ Api.projectPackage = jest.fn().mockRejectedValue();
+
+ testAction(
+ fetchPackageVersions,
+ undefined,
+ { packageEntity },
+ [{ type: types.SET_LOADING, payload: true }, { type: types.SET_LOADING, payload: false }],
+ [],
+ () => {
+ expect(Api.projectPackage).toHaveBeenCalledWith(
+ packageEntity.project_id,
+ packageEntity.id,
+ );
+ expect(createFlash).toHaveBeenCalledWith(FETCH_PACKAGE_VERSIONS_ERROR);
+ done();
+ },
+ );
+ });
+ });
+});