fix: [AA-1018] api refactor

This is the first step toward clearing out the redundant metadata from the
coursewareMetadata and getting it from a common source - the courseHomeMetadata.

remove username from coursewareMetadata
Remove courseAccess from coursewareMetadata.

Fix all unit tests
Modify classes that use metadataModel to use courseHomeMetadata for common data.
metadataModel still exists as a mechanism to distinguish if a component is under
courseware or courseHome, and it will be renamed or removed in a later refactor.
This commit is contained in:
Chris Deery
2022-01-14 08:54:07 -05:00
parent 6db421eade
commit 3fe5bb1733
25 changed files with 127 additions and 62 deletions

View File

@@ -5,9 +5,9 @@ import { Factory } from 'rosie'; // eslint-disable-line import/no-extraneous-dep
import './tab.factory';
export default new Factory()
.sequence('id', (i) => `course-v1:edX+DemoX+Demo_Course_${i}`)
.option('host')
.attrs({
id: 'course-v1:edX+DemoX+Demo_Course_1',
is_staff: false,
original_user_is_staff: false,
number: 'DemoX',

View File

@@ -58,7 +58,7 @@ function StreakModal({
if (!isStreakCelebrationOpen) {
return null;
}
const { org, celebrations, username } = useModel(metadataModel, courseId);
const { org, celebrations, username } = useModel('courseHomeMeta', courseId);
const factoid = getRandomFactoid(intl, streakLengthToCelebrate);
// eslint-disable-next-line no-unused-vars
const [randomFactoid, setRandomFactoid] = useState(factoid); // Don't change factoid on re-render
@@ -155,7 +155,7 @@ function StreakModal({
title={title}
onClose={() => {
closeStreakCelebration();
recordModalClosing(metadataModel, celebrations, org, courseId, dispatch);
recordModalClosing('courseHomeMeta', celebrations, org, courseId, dispatch);
}}
isOpen={isStreakCelebrationOpen}
isFullscreenScroll

View File

@@ -23,6 +23,7 @@ describe('Loaded Tab Page', () => {
let axiosMock;
const calculateUrl = `${getConfig().ECOMMERCE_BASE_URL}/api/v2/baskets/calculate/?code=ZGY11119949&sku=8CF08E5&username=MockUser`;
const courseMetadata = Factory.build('courseMetadata', { celebrations: { streak_length_to_celebrate: 3 } });
const courseHomeMetadata = Factory.build('courseHomeMetadata', { id: courseMetadata.id, courseId: courseMetadata.courseId });
function setDiscount(percent) {
mockData.streakDiscountCouponEnabled = true;
@@ -51,7 +52,7 @@ describe('Loaded Tab Page', () => {
verifiedMode: camelCaseObject(courseMetadata.verified_mode),
};
testStore = await initializeTestStore({ courseMetadata }, false);
testStore = await initializeTestStore({ courseMetadata, courseHomeMetadata }, false);
axiosMock = new MockAdapter(getAuthenticatedHttpClient());
});