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/jira_connect/utils_spec.js')
-rw-r--r--spec/frontend/jira_connect/utils_spec.js114
1 files changed, 111 insertions, 3 deletions
diff --git a/spec/frontend/jira_connect/utils_spec.js b/spec/frontend/jira_connect/utils_spec.js
index 5310bce384b..7eae870478d 100644
--- a/spec/frontend/jira_connect/utils_spec.js
+++ b/spec/frontend/jira_connect/utils_spec.js
@@ -1,11 +1,19 @@
import { useLocalStorageSpy } from 'helpers/local_storage_helper';
+import { useMockLocationHelper } from 'helpers/mock_window_location_helper';
import { ALERT_LOCALSTORAGE_KEY } from '~/jira_connect/constants';
-import { persistAlert, retrieveAlert } from '~/jira_connect/utils';
-
-useLocalStorageSpy();
+import {
+ persistAlert,
+ retrieveAlert,
+ getJwt,
+ getLocation,
+ reloadPage,
+ sizeToParent,
+} from '~/jira_connect/utils';
describe('JiraConnect utils', () => {
describe('alert utils', () => {
+ useLocalStorageSpy();
+
it.each`
arg | expectedRetrievedValue
${{ title: 'error' }} | ${{ title: 'error' }}
@@ -29,4 +37,104 @@ describe('JiraConnect utils', () => {
},
);
});
+
+ describe('AP object utils', () => {
+ afterEach(() => {
+ global.AP = null;
+ });
+
+ describe('getJwt', () => {
+ const mockJwt = 'jwt';
+ const getTokenSpy = jest.fn((callback) => callback(mockJwt));
+
+ it('resolves to the function call when AP.context.getToken is a function', async () => {
+ global.AP = {
+ context: {
+ getToken: getTokenSpy,
+ },
+ };
+
+ const jwt = await getJwt();
+
+ expect(getTokenSpy).toHaveBeenCalled();
+ expect(jwt).toBe(mockJwt);
+ });
+
+ it('resolves to undefined when AP.context.getToken is not a function', async () => {
+ const jwt = await getJwt();
+
+ expect(getTokenSpy).not.toHaveBeenCalled();
+ expect(jwt).toBeUndefined();
+ });
+ });
+
+ describe('getLocation', () => {
+ const mockLocation = 'test/location';
+ const getLocationSpy = jest.fn((callback) => callback(mockLocation));
+
+ it('resolves to the function call when AP.getLocation is a function', async () => {
+ global.AP = {
+ getLocation: getLocationSpy,
+ };
+
+ const location = await getLocation();
+
+ expect(getLocationSpy).toHaveBeenCalled();
+ expect(location).toBe(mockLocation);
+ });
+
+ it('resolves to undefined when AP.getLocation is not a function', async () => {
+ const location = await getLocation();
+
+ expect(getLocationSpy).not.toHaveBeenCalled();
+ expect(location).toBeUndefined();
+ });
+ });
+
+ describe('reloadPage', () => {
+ const reloadSpy = jest.fn();
+
+ useMockLocationHelper();
+
+ it('calls the function when AP.navigator.reload is a function', async () => {
+ global.AP = {
+ navigator: {
+ reload: reloadSpy,
+ },
+ };
+
+ await reloadPage();
+
+ expect(reloadSpy).toHaveBeenCalled();
+ expect(window.location.reload).not.toHaveBeenCalled();
+ });
+
+ it('calls window.location.reload when AP.navigator.reload is not a function', async () => {
+ await reloadPage();
+
+ expect(reloadSpy).not.toHaveBeenCalled();
+ expect(window.location.reload).toHaveBeenCalled();
+ });
+ });
+
+ describe('sizeToParent', () => {
+ const sizeToParentSpy = jest.fn();
+
+ it('calls the function when AP.sizeToParent is a function', async () => {
+ global.AP = {
+ sizeToParent: sizeToParentSpy,
+ };
+
+ await sizeToParent();
+
+ expect(sizeToParentSpy).toHaveBeenCalled();
+ });
+
+ it('does nothing when AP.navigator.reload is not a function', async () => {
+ await sizeToParent();
+
+ expect(sizeToParentSpy).not.toHaveBeenCalled();
+ });
+ });
+ });
});