fix: force LMS url to reload when changed (#136)

This commit is contained in:
Ghassan Maslamani
2023-06-13 18:24:23 +03:00
committed by GitHub
parent 5db95b0029
commit f92bd9c8f9
23 changed files with 74 additions and 57 deletions

View File

@@ -17,7 +17,7 @@ import * as module from './api';
* GET Actions
*********************************************************************************/
export const initializeList = ({ user } = {}) => get(
stringifyUrl(urls.init, { [apiKeys.user]: user }),
stringifyUrl(urls.getInitApiUrl(), { [apiKeys.user]: user }),
);
export const updateEntitlementEnrollment = ({ uuid, courseId }) => post(

View File

@@ -43,7 +43,7 @@ describe('lms api methods', () => {
[apiKeys.user]: testUser,
};
expect(api.initializeList(userArg)).toEqual(
utils.get(utils.stringifyUrl(urls.init, userArg)),
utils.get(utils.stringifyUrl(urls.getInitApiUrl(), userArg)),
);
});
});

View File

@@ -1,40 +1,41 @@
import { StrictDict } from 'utils';
import { configuration } from 'config';
const baseUrl = `${configuration.LMS_BASE_URL}`;
export const ecommerceUrl = `${configuration.ECOMMERCE_BASE_URL}`;
import { getConfig } from '@edx/frontend-platform';
export const api = `${baseUrl}/api`;
export const getEcommerceUrl = () => getConfig().ECOMMERCE_BASE_URL;
// const init = `${api}learner_home/mock/init`; // mock endpoint for testing
const init = `${api}/learner_home/init`;
const getBaseUrl = () => getConfig().LMS_BASE_URL;
const event = `${baseUrl}/event`;
const courseUnenroll = `${baseUrl}/change_enrollment`;
const updateEmailSettings = `${api}/change_email_settings`;
const entitlementEnrollment = (uuid) => `${api}/entitlements/v1/entitlements/${uuid}/enrollments`;
export const getApiUrl = () => (`${getConfig().LMS_BASE_URL}/api`);
const getInitApiUrl = () => (`${getApiUrl()}/learner_home/init`);
const event = `${getBaseUrl()}/event`;
const courseUnenroll = `${getBaseUrl()}/change_enrollment`;
const updateEmailSettings = `${getApiUrl()}/change_email_settings`;
const entitlementEnrollment = (uuid) => `${getApiUrl()}/entitlements/v1/entitlements/${uuid}/enrollments`;
// 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 updateUrl = (base, url) => ((url == null || url.startsWith('http://') || url.startsWith('https://')) ? url : `${base}${url}`);
export const baseAppUrl = (url) => updateUrl(baseUrl, url);
export const learningMfeUrl = (url) => updateUrl(configuration.LEARNING_BASE_URL, url);
export const baseAppUrl = (url) => updateUrl(getBaseUrl(), url);
export const learningMfeUrl = (url) => updateUrl(getConfig().LEARNING_BASE_URL, url);
// static view url
const programsUrl = baseAppUrl('/dashboard/programs');
export const creditPurchaseUrl = (courseId) => `${ecommerceUrl}/credit/checkout/${courseId}/`;
export const creditRequestUrl = (providerId) => `${api}/credit/v1/providers/${providerId}/request/`;
export const creditPurchaseUrl = (courseId) => `${getEcommerceUrl()}/credit/checkout/${courseId}/`;
export const creditRequestUrl = (providerId) => `${getApiUrl()}/credit/v1/providers/${providerId}/request/`;
export default StrictDict({
api,
getApiUrl,
baseAppUrl,
courseUnenroll,
creditPurchaseUrl,
creditRequestUrl,
entitlementEnrollment,
event,
init,
getInitApiUrl,
learningMfeUrl,
programsUrl,
updateEmailSettings,

View File

@@ -1,4 +1,4 @@
import { configuration } from 'config';
import { getConfig } from '@edx/frontend-platform';
import * as urls from './urls';
describe('urls', () => {
@@ -10,7 +10,7 @@ describe('urls', () => {
it('returns the url if it is relative', () => {
const url = '/edx.org';
expect(urls.baseAppUrl(url)).toEqual(
`${configuration.LMS_BASE_URL}${url}`,
`${getConfig().LMS_BASE_URL}${url}`,
);
});
it('return null if url is null', () => {
@@ -25,7 +25,7 @@ describe('urls', () => {
it('returns the url if it is relative', () => {
const url = '/edx.org';
expect(urls.learningMfeUrl(url)).toEqual(
`${configuration.LEARNING_BASE_URL}${url}`,
`${getConfig().LEARNING_BASE_URL}${url}`,
);
});
it('return null if url is null', () => {
@@ -36,7 +36,6 @@ describe('urls', () => {
it('builds from ecommerce url and loads courseId', () => {
const courseId = 'test-course-id';
const url = urls.creditPurchaseUrl(courseId);
expect(url.startsWith(urls.ecommerceUrl)).toEqual(true);
expect(url).toEqual(expect.stringContaining(courseId));
});
});
@@ -44,7 +43,7 @@ describe('urls', () => {
it('builds from api url and loads providerId', () => {
const providerId = 'test-provider-id';
const url = urls.creditRequestUrl(providerId);
expect(url.startsWith(urls.api)).toEqual(true);
expect(url.startsWith(urls.getApiUrl())).toEqual(true);
expect(url).toEqual(expect.stringContaining(providerId));
});
});