fix: [AA-1207] Remove redundant API fields (#873)

Remove redundant fields from courseware API. These are all found in courseHome: 

- number
- org
- originalUserIsStaff
- isStaff
- verifiedMode
- isMasquerading (virtual field from isStaff and originalUserIsStaff)
This commit is contained in:
Chris Deery
2022-03-18 09:20:31 -04:00
committed by GitHub
parent 9436770620
commit 3cba1bbac4
31 changed files with 116 additions and 113 deletions

View File

@@ -32,14 +32,6 @@ Factory.define('courseMetadata')
mode: null,
is_active: null,
},
verified_mode: {
access_expiration_date: null,
currency: 'USD',
upgrade_url: 'http://localhost:18130/basket/add/?sku=8CF08E5',
sku: '8CF08E5',
price: 149,
currency_symbol: '$',
},
show_calculator: false,
license: 'all-rights-reserved',
notes: {

View File

@@ -95,9 +95,7 @@ function normalizeMetadata(metadata) {
courseGoals: camelCaseObject(data.course_goals),
id: data.id,
title: data.name,
number: data.number,
offer: camelCaseObject(data.offer),
org: data.org,
enrollmentStart: data.enrollment_start,
enrollmentEnd: data.enrollment_end,
end: data.end,
@@ -105,10 +103,7 @@ function normalizeMetadata(metadata) {
enrollmentMode: data.enrollment.mode,
isEnrolled: data.enrollment.is_active,
canViewLegacyCourseware: data.can_view_legacy_courseware,
originalUserIsStaff: data.original_user_is_staff,
isStaff: data.is_staff,
license: data.license,
verifiedMode: camelCaseObject(data.verified_mode),
userTimezone: data.user_timezone,
showCalculator: data.show_calculator,
notes: camelCaseObject(data.notes),
@@ -125,7 +120,6 @@ function normalizeMetadata(metadata) {
relatedPrograms: camelCaseObject(data.related_programs),
isIntegritySignatureEnabled: data.is_integrity_signature_enabled,
userNeedsIntegritySignature: data.user_needs_integrity_signature,
isMasquerading: data.original_user_is_staff && !data.is_staff,
canAccessProctoredExams: data.can_access_proctored_exams,
};
}

View File

@@ -224,7 +224,6 @@ describe('Courseware Service', () => {
}),
license: string('all-rights-reserved'),
name: like('Demonstration Course'),
number: like('DemoX'),
offer: {
code: string('code'),
expiration_date: term({
@@ -236,7 +235,6 @@ describe('Courseware Service', () => {
percentage: integer(50),
upgrade_url: string('url'),
},
org: like('edX'),
related_programs: null,
short_description: like(''),
start: term({
@@ -269,11 +267,6 @@ describe('Courseware Service', () => {
}),
notes: { enabled: boolean(false), visible: boolean(true) },
marketing_url: null,
celebrations: {
first_section: boolean(false),
streak_length_to_celebrate: null,
streak_discount_enabled: boolean(false),
},
user_has_passing_grade: boolean(false),
course_exit_page_is_active: boolean(false),
certificate_data: {
@@ -298,7 +291,6 @@ describe('Courseware Service', () => {
contentTypeGatingEnabled: false,
id: 'course-v1:edX+DemoX+Demo_Course',
title: 'Demonstration Course',
number: 'DemoX',
offer: {
code: 'code',
discountedPrice: '$99',
@@ -307,7 +299,6 @@ describe('Courseware Service', () => {
percentage: 50,
upgradeUrl: 'url',
},
org: 'edX',
enrollmentStart: '2013-02-05T05:00:00Z',
enrollmentEnd: '2013-02-05T05:00:00Z',
end: '2013-02-05T05:00:00Z',
@@ -315,26 +306,11 @@ describe('Courseware Service', () => {
enrollmentMode: 'audit',
isEnrolled: true,
canViewLegacyCourseware: true,
originalUserIsStaff: true,
isStaff: true,
license: 'all-rights-reserved',
verifiedMode: {
accessExpirationDate: '2013-02-05T05:00:00Z',
currency: 'USD',
currencySymbol: '$',
price: 149,
sku: '8CF08E5',
upgradeUrl: `${getConfig().ECOMMERCE_BASE_URL}/basket/add/?sku=8CF08E5`,
},
userTimezone: null,
showCalculator: false,
notes: { enabled: false, visible: true },
marketingUrl: null,
celebrations: {
firstSection: false,
streakLengthToCelebrate: null,
streakDiscountEnabled: false,
},
userHasPassingGrade: false,
courseExitPageIsActive: false,
certificateData: {
@@ -349,7 +325,6 @@ describe('Courseware Service', () => {
linkedinAddToProfileUrl: null,
relatedPrograms: null,
userNeedsIntegritySignature: false,
isMasquerading: false,
};
const response = await getCourseMetadata(courseId);
expect(response).toBeTruthy();

View File

@@ -112,7 +112,7 @@ describe('Data layer integration tests', () => {
expect(state.courseware.sequenceId).toEqual(null);
// check that at least one key camel cased, thus course data normalized
expect(state.models.coursewareMeta[courseId].verifiedMode).not.toBeUndefined();
expect(state.models.coursewareMeta[courseId].marketingUrl).not.toBeUndefined();
});
it('Should fetch, normalize, and save metadata; filtering has no effect', async () => {
@@ -132,7 +132,7 @@ describe('Data layer integration tests', () => {
expect(state.courseware.sequenceId).toEqual(null);
// check that at least one key camel cased, thus course data normalized
expect(state.models.coursewareMeta[courseId].verifiedMode).not.toBeUndefined();
expect(state.models.coursewareMeta[courseId].marketingUrl).not.toBeUndefined();
expect(state.models.sequences.length === 1);
Object.values(state.models.sections).forEach(section => expect(section.sequenceIds.length === 1));
@@ -159,7 +159,7 @@ describe('Data layer integration tests', () => {
expect(state.courseware.sequenceId).toEqual(null);
// check that at least one key camel cased, thus course data normalized
expect(state.models.coursewareMeta[courseId].verifiedMode).not.toBeUndefined();
expect(state.models.coursewareMeta[courseId].marketingUrl).not.toBeUndefined();
expect(state.models.sequences === null);
Object.values(state.models.sections).forEach(section => expect(section.sequenceIds.length === 0));