Skip to content

Commit 2b0a088

Browse files
test: remove deprecated useNewCertificatesPage and useNewVideoUploadsPage flag references
These flags are being removed in #3066 and should be treated as always true. Remove test scenarios for the disabled state and clean up mock overrides that set them to false.
1 parent b4c55ab commit 2b0a088

4 files changed

Lines changed: 63 additions & 104 deletions

File tree

src/authz/permissionHelpers.test.ts

Lines changed: 57 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -24,81 +24,81 @@ describe('permissionHelpers', () => {
2424
canManageCourseUpdates: {
2525
action: COURSE_PERMISSIONS.MANAGE_COURSE_UPDATES,
2626
scope: courseId,
27-
},
27+
},
2828
});
2929
});
3030

31-
describe('getFilesPermissions', () => {
32-
it('should return correct permission structure for file operations', () => {
33-
const result = getFilesPermissions(mockCourseId);
34-
35-
expect(result).toEqual({
36-
canViewFiles: {
37-
action: COURSE_PERMISSIONS.VIEW_FILES,
38-
scope: mockCourseId,
39-
},
40-
canCreateFiles: {
41-
action: COURSE_PERMISSIONS.CREATE_FILES,
42-
scope: mockCourseId,
43-
},
44-
canDeleteFiles: {
45-
action: COURSE_PERMISSIONS.DELETE_FILES,
46-
scope: mockCourseId,
47-
},
48-
canEditFiles: {
49-
action: COURSE_PERMISSIONS.EDIT_FILES,
50-
scope: mockCourseId,
51-
},
31+
describe('getFilesPermissions', () => {
32+
it('should return correct permission structure for file operations', () => {
33+
const result = getFilesPermissions(mockCourseId);
34+
35+
expect(result).toEqual({
36+
canViewFiles: {
37+
action: COURSE_PERMISSIONS.VIEW_FILES,
38+
scope: mockCourseId,
39+
},
40+
canCreateFiles: {
41+
action: COURSE_PERMISSIONS.CREATE_FILES,
42+
scope: mockCourseId,
43+
},
44+
canDeleteFiles: {
45+
action: COURSE_PERMISSIONS.DELETE_FILES,
46+
scope: mockCourseId,
47+
},
48+
canEditFiles: {
49+
action: COURSE_PERMISSIONS.EDIT_FILES,
50+
scope: mockCourseId,
51+
},
52+
});
5253
});
53-
});
5454

55-
it('should use the provided courseId as scope for all permissions', () => {
56-
const customCourseId = 'course-v1:TestOrg+TestCourse+2024';
57-
const result = getFilesPermissions(customCourseId);
55+
it('should use the provided courseId as scope for all permissions', () => {
56+
const customCourseId = 'course-v1:TestOrg+TestCourse+2024';
57+
const result = getFilesPermissions(customCourseId);
5858

59-
Object.values(result).forEach(permission => {
60-
expect(permission.scope).toBe(customCourseId);
59+
Object.values(result).forEach(permission => {
60+
expect(permission.scope).toBe(customCourseId);
61+
});
6162
});
6263
});
63-
});
6464

65-
describe('getGradingPermissions', () => {
66-
it('returns VIEW and EDIT permissions with the correct actions and scope', () => {
67-
const result = getGradingPermissions(courseId);
65+
describe('getGradingPermissions', () => {
66+
it('returns VIEW and EDIT permissions with the correct actions and scope', () => {
67+
const result = getGradingPermissions(courseId);
6868

69-
expect(result.canViewGradingSettings.action).toBe(COURSE_PERMISSIONS.VIEW_GRADING_SETTINGS);
70-
expect(result.canViewGradingSettings.scope).toBe(courseId);
71-
expect(result.canEditGradingSettings.action).toBe(COURSE_PERMISSIONS.EDIT_GRADING_SETTINGS);
72-
expect(result.canEditGradingSettings.scope).toBe(courseId);
69+
expect(result.canViewGradingSettings.action).toBe(COURSE_PERMISSIONS.VIEW_GRADING_SETTINGS);
70+
expect(result.canViewGradingSettings.scope).toBe(courseId);
71+
expect(result.canEditGradingSettings.action).toBe(COURSE_PERMISSIONS.EDIT_GRADING_SETTINGS);
72+
expect(result.canEditGradingSettings.scope).toBe(courseId);
73+
});
7374
});
74-
});
7575

76-
describe('getPagesAndResourcesPermissions', () => {
77-
it('returns VIEW and MANAGE permissions with the correct actions and scope', () => {
78-
const result = getPagesAndResourcesPermissions(courseId);
76+
describe('getPagesAndResourcesPermissions', () => {
77+
it('returns VIEW and MANAGE permissions with the correct actions and scope', () => {
78+
const result = getPagesAndResourcesPermissions(courseId);
7979

80-
expect(result.canViewPagesAndResources.action).toBe(COURSE_PERMISSIONS.VIEW_PAGES_AND_RESOURCES);
81-
expect(result.canViewPagesAndResources.scope).toBe(courseId);
82-
expect(result.canManagePagesAndResources.action).toBe(COURSE_PERMISSIONS.MANAGE_PAGES_AND_RESOURCES);
83-
expect(result.canManagePagesAndResources.scope).toBe(courseId);
80+
expect(result.canViewPagesAndResources.action).toBe(COURSE_PERMISSIONS.VIEW_PAGES_AND_RESOURCES);
81+
expect(result.canViewPagesAndResources.scope).toBe(courseId);
82+
expect(result.canManagePagesAndResources.action).toBe(COURSE_PERMISSIONS.MANAGE_PAGES_AND_RESOURCES);
83+
expect(result.canManagePagesAndResources.scope).toBe(courseId);
84+
});
8485
});
85-
});
8686

87-
describe('getAdvancedSettingsPermissions', () => {
88-
it('returns MANAGE permission with the correct action and scope', () => {
89-
const result = getAdvancedSettingsPermissions(courseId);
87+
describe('getAdvancedSettingsPermissions', () => {
88+
it('returns MANAGE permission with the correct action and scope', () => {
89+
const result = getAdvancedSettingsPermissions(courseId);
9090

91-
expect(result.canManageAdvancedSettings.action).toBe(COURSE_PERMISSIONS.MANAGE_ADVANCED_SETTINGS);
92-
expect(result.canManageAdvancedSettings.scope).toBe(courseId);
93-
});
91+
expect(result.canManageAdvancedSettings.action).toBe(COURSE_PERMISSIONS.MANAGE_ADVANCED_SETTINGS);
92+
expect(result.canManageAdvancedSettings.scope).toBe(courseId);
93+
});
9494

95-
it('uses the provided courseId as scope', () => {
96-
const otherId = 'course-v1:another+test+run';
97-
const result = getAdvancedSettingsPermissions(otherId);
95+
it('uses the provided courseId as scope', () => {
96+
const otherId = 'course-v1:another+test+run';
97+
const result = getAdvancedSettingsPermissions(otherId);
9898

99-
expect(result.canManageAdvancedSettings.scope).toBe(otherId);
100-
});
101-
});
99+
expect(result.canManageAdvancedSettings.scope).toBe(otherId);
100+
});
101+
});
102102

103103
it('should use correct COURSE_PERMISSIONS constants for each action', () => {
104104
const result = getFilesPermissions(mockCourseId);

src/authz/permissionHelpers.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ export const getPagesAndResourcesPermissions = (courseId: string) => ({
5151
export const getAdvancedSettingsPermissions = (courseId: string) => ({
5252
canManageAdvancedSettings: {
5353
action: COURSE_PERMISSIONS.MANAGE_ADVANCED_SETTINGS,
54-
scope: courseId,
54+
scope: courseId,
5555
},
5656
});
5757
export const getFilesPermissions = (courseId: string) => ({

src/header/hooks.test.tsx

Lines changed: 3 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,7 @@ jest.mock('@edx/frontend-platform/i18n', () => ({
2222
}));
2323

2424
// Bypass React Query for waffle flags, and just return the default values.
25-
mockWaffleFlags({
26-
// Some flags can be enabled with either a config value or a waffle flag.
27-
// For test purposes, we'll configure the video upload page using the config, so leave the waffle flag off.
28-
useNewVideoUploadsPage: false,
29-
useNewCertificatesPage: false,
30-
});
25+
mockWaffleFlags({});
3126

3227
jest.mock('react-redux', () => ({
3328
...jest.requireActual('react-redux'),
@@ -87,29 +82,6 @@ describe('header utils', () => {
8782
renderHook(() => useContentMenuItems('course-123'), { wrapper: createWrapper() }).result.current;
8883
expect(actualItems).toHaveLength(5);
8984
});
90-
it('when video upload page disabled should not include Video Uploads option', () => {
91-
mockWaffleFlags({
92-
enableAuthzCourseAuthoring: false,
93-
useNewVideoUploadsPage: false,
94-
useNewCertificatesPage: false,
95-
});
96-
jest.mocked(useCourseUserPermissions).mockReturnValue({
97-
isLoading: false,
98-
canViewCourseUpdates: true,
99-
canViewPagesAndResources: true,
100-
canViewFiles: true,
101-
} as any);
102-
jest.mocked(useSelector).mockReturnValue({
103-
librariesV2Enabled: false,
104-
});
105-
setConfig({
106-
...getConfig(),
107-
ENABLE_VIDEO_UPLOAD_PAGE_LINK_IN_CONTENT_DROPDOWN: 'false',
108-
});
109-
const actualItems =
110-
renderHook(() => useContentMenuItems('course-123'), { wrapper: createWrapper() }).result.current;
111-
expect(actualItems).toHaveLength(4);
112-
});
11385
it('when authz enabled and user has no permission to view files should not include files option', () => {
11486
mockWaffleFlags({ enableAuthzCourseAuthoring: true });
11587
jest.mocked(useCourseUserPermissions).mockReturnValue({
@@ -243,12 +215,10 @@ describe('header utils', () => {
243215
beforeAll(() => {
244216
mockWaffleFlags({
245217
enableAuthzCourseAuthoring: false,
246-
useNewVideoUploadsPage: false,
247-
useNewCertificatesPage: false,
248218
});
249219
});
250220
beforeEach(() => {
251-
mockWaffleFlags({ enableAuthzCourseAuthoring: false, useNewCertificatesPage: false });
221+
mockWaffleFlags({ enableAuthzCourseAuthoring: false });
252222
jest.mocked(useSelector).mockReturnValue({
253223
canAccessAdvancedSettings: true,
254224
});
@@ -270,15 +240,6 @@ describe('header utils', () => {
270240
renderHook(() => useSettingMenuItems('course-123'), { wrapper: createWrapper() }).result.current;
271241
expect(actualItems).toHaveLength(6);
272242
});
273-
it('when certificate page disabled should not include certificates option', () => {
274-
setConfig({
275-
...getConfig(),
276-
ENABLE_CERTIFICATE_PAGE: 'false',
277-
});
278-
const actualItems =
279-
renderHook(() => useSettingMenuItems('course-123'), { wrapper: createWrapper() }).result.current;
280-
expect(actualItems).toHaveLength(5);
281-
});
282243
it('when user has access to advanced settings should include advanced settings option', () => {
283244
const actualItemsTitle = renderHook(() => useSettingMenuItems('course-123'), { wrapper: createWrapper() }).result
284245
.current.map((item) => item.title);
@@ -438,7 +399,7 @@ describe('header utils', () => {
438399
});
439400

440401
it('should include roles and permissions option', () => {
441-
mockWaffleFlags({ enableAuthzCourseAuthoring: true, useNewCertificatesPage: false });
402+
mockWaffleFlags({ enableAuthzCourseAuthoring: true });
442403
jest.mocked(useCourseUserPermissions).mockReturnValue({
443404
isLoading: false,
444405
isAuthzEnabled: true,

src/header/hooks.tsx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,8 @@ import {
1616
getGradingPermissions,
1717
getPagesAndResourcesPermissions,
1818
getScheduleAndDetailsPermissions,
19-
getFilesPermissions
19+
getFilesPermissions,
2020
} from '@src/authz/permissionHelpers';
21-
import { useUserPermissions } from '@src/authz/data/apiHooks';
22-
import { COURSE_PERMISSIONS } from '@src/authz/constants';
2321
import messages from './messages';
2422
import { getCourseUpdatesPermissions } from '@src/authz/permissionHelpers';
2523

@@ -29,7 +27,7 @@ export const useContentMenuItems = (courseId: string) => {
2927
const waffleFlags = useWaffleFlags(courseId);
3028
const { librariesV2Enabled } = useSelector(getStudioHomeData);
3129

32-
const { canViewCourseUpdates, canViewPagesAndResources, canViewFiles} = useCourseUserPermissions(
30+
const { canViewCourseUpdates, canViewPagesAndResources, canViewFiles } = useCourseUserPermissions(
3331
courseId,
3432
{
3533
...getPagesAndResourcesPermissions(courseId),

0 commit comments

Comments
 (0)