fix: add handler when url is null

This commit is contained in:
Leangseu Kim
2022-10-25 15:40:43 -04:00
committed by leangseu-edx
parent 3973d173cf
commit 254ccfccb6
2 changed files with 39 additions and 3 deletions

View File

@@ -12,10 +12,11 @@ const courseUnenroll = `${baseUrl}/change_enrollment`;
const updateEmailSettings = `${api}/change_email_settings`;
const entitlementEnrollment = (uuid) => `${api}/entitlements/v1/entitlements/${uuid}/enrollments`;
const isAbsoluteUrl = (url) => url.startsWith('http://') || url.startsWith('https://');
// if url is null or absolute, return it as is
const updateUrl = (base, url) => ((url == null || url.startsWith('http://') || url.startsWith('https://')) ? url : `${base}${url}`);
export const baseAppUrl = (url) => (isAbsoluteUrl(url) ? url : baseUrl + url);
export const learningMfeUrl = (url) => (isAbsoluteUrl(url) ? url : configuration.LEARNING_BASE_URL + url);
export const baseAppUrl = (url) => updateUrl(baseUrl, url);
export const learningMfeUrl = (url) => updateUrl(configuration.LEARNING_BASE_URL, url);
// static view url
const programsUrl = baseAppUrl('/dashboard/programs');

View File

@@ -0,0 +1,35 @@
import { configuration } from 'config';
import * as urls from './urls';
describe('urls', () => {
describe('baseAppUrl', () => {
it('returns the url if it is not relative', () => {
const url = 'http://edx.org';
expect(urls.baseAppUrl(url)).toEqual(url);
});
it('returns the url if it is relative', () => {
const url = '/edx.org';
expect(urls.baseAppUrl(url)).toEqual(
`${configuration.LMS_BASE_URL}${url}`,
);
});
it('return null if url is null', () => {
expect(urls.baseAppUrl(null)).toEqual(null);
});
});
describe('learningMfeUrl', () => {
it('returns the url if it is not relative', () => {
const url = 'http://edx.org';
expect(urls.learningMfeUrl(url)).toEqual(url);
});
it('returns the url if it is relative', () => {
const url = '/edx.org';
expect(urls.learningMfeUrl(url)).toEqual(
`${configuration.LEARNING_BASE_URL}${url}`,
);
});
it('return null if url is null', () => {
expect(urls.learningMfeUrl(null)).toEqual(null);
});
});
});