chore: addressing some comments
This commit is contained in:
@@ -16,6 +16,15 @@ export async function getStudioHomeData() {
|
||||
return camelCaseObject(data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get's studio home courses.
|
||||
* @param {string} search - Query string parameters for filtering the courses.
|
||||
* @param {object} customParams - Additional custom parameters for the API request.
|
||||
* @returns {Promise<Object>} - A Promise that resolves to the response data containing the studio home courses.
|
||||
* Note: We are changing /api/contentstore/v1 to /api/contentstore/v2 due to upcoming breaking changes.
|
||||
* Features such as pagination, filtering, and ordering are better handled in the new version.
|
||||
* Please refer to this PR for further details: https://github.com/openedx/edx-platform/pull/34173
|
||||
*/
|
||||
export async function getStudioHomeCourses(search, customParams) {
|
||||
const { data } = await getAuthenticatedHttpClient().get(`${getApiBaseUrl()}/api/contentstore/v2/home/courses${search}`, { params: customParams });
|
||||
return camelCaseObject(data);
|
||||
|
||||
@@ -54,28 +54,6 @@ export const generateGetStudioCoursesApiResponse = () => ({
|
||||
previous: null,
|
||||
numPages: 2,
|
||||
results: {
|
||||
archivedCourses: [
|
||||
{
|
||||
courseKey: 'course-v1:MachineLearning+123+2023',
|
||||
displayName: 'Machine Learning',
|
||||
lmsLink: '//localhost:18000/courses/course-v1:MachineLearning+123+2023/jump_to/block-v1:MachineLearning+123+2023+type@course+block@course',
|
||||
number: '123',
|
||||
org: 'LSE',
|
||||
rerunLink: '/course_rerun/course-v1:MachineLearning+123+2023',
|
||||
run: '2023',
|
||||
url: '/course/course-v1:MachineLearning+123+2023',
|
||||
},
|
||||
{
|
||||
courseKey: 'course-v1:Design+123+e.g.2025',
|
||||
displayName: 'Design',
|
||||
lmsLink: '//localhost:18000/courses/course-v1:Design+123+e.g.2025/jump_to/block-v1:Design+123+e.g.2025+type@course+block@course',
|
||||
number: '123',
|
||||
org: 'University of Cape Town',
|
||||
rerunLink: '/course_rerun/course-v1:Design+123+e.g.2025',
|
||||
run: 'e.g.2025',
|
||||
url: '/course/course-v1:Design+123+e.g.2025',
|
||||
},
|
||||
],
|
||||
courses: [
|
||||
{
|
||||
courseKey: 'course-v1:HarvardX+123+2023',
|
||||
|
||||
@@ -150,40 +150,6 @@ describe('<TabsSection />', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('archived tab', () => {
|
||||
it('should switch to Archived tab and render specific archived course details', async () => {
|
||||
render(<RootWrapper />);
|
||||
axiosMock.onGet(getStudioHomeApiUrl()).reply(200, generateGetStudioHomeDataApiResponse());
|
||||
axiosMock.onGet(courseApiLink).reply(200, generateGetStudioCoursesApiResponse());
|
||||
await executeThunk(fetchStudioHomeData(), store.dispatch);
|
||||
|
||||
const archivedTab = screen.getByText(tabMessages.archivedTabTitle.defaultMessage);
|
||||
fireEvent.click(archivedTab);
|
||||
|
||||
expect(screen.getByText(studioHomeMock.archivedCourses[0].displayName)).toBeVisible();
|
||||
|
||||
expect(screen.getByText(
|
||||
`${studioHomeMock.archivedCourses[0].org} / ${studioHomeMock.archivedCourses[0].number} / ${studioHomeMock.archivedCourses[0].run}`,
|
||||
)).toBeVisible();
|
||||
});
|
||||
|
||||
it('should hide Archived tab when archived courses are empty', async () => {
|
||||
const data = generateGetStudioCoursesApiResponse();
|
||||
data.results.archivedCourses = [];
|
||||
|
||||
render(<RootWrapper />);
|
||||
axiosMock.onGet(getStudioHomeApiUrl()).reply(200, generateGetStudioHomeDataApiResponse());
|
||||
axiosMock.onGet(courseApiLink).reply(200, data);
|
||||
await executeThunk(fetchStudioHomeData(), store.dispatch);
|
||||
|
||||
expect(screen.getByText(tabMessages.coursesTabTitle.defaultMessage)).toBeInTheDocument();
|
||||
|
||||
expect(screen.getByText(tabMessages.librariesTabTitle.defaultMessage)).toBeInTheDocument();
|
||||
|
||||
expect(screen.queryByText(tabMessages.archivedTabTitle.defaultMessage)).toBeNull();
|
||||
});
|
||||
});
|
||||
|
||||
describe('library tab', () => {
|
||||
it('should switch to Libraries tab and render specific library details', async () => {
|
||||
render(<RootWrapper />);
|
||||
|
||||
Reference in New Issue
Block a user