Skip to content

Commit b04c19e

Browse files
committed
refactor: implement feedback
1 parent 9f5b64c commit b04c19e

7 files changed

Lines changed: 13 additions & 37 deletions

File tree

src/authz-module/audit-user/index.test.tsx

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,9 @@ import {
22
render, screen, waitFor, act,
33
} from '@testing-library/react';
44
import { AppContext } from '@edx/frontend-platform/react';
5-
import type { ConfigDocument } from '@edx/frontend-platform/config';
65
import userEvent from '@testing-library/user-event';
76
import { MemoryRouter, Route, Routes } from 'react-router-dom';
8-
import { mockHttpClient } from '@src/setupTest';
7+
import { mockHttpClient, mockAppContext } from '@src/setupTest';
98
import { IntlProvider } from '@edx/frontend-platform/i18n';
109
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
1110
import { ToastManagerProvider } from '@src/components/ToastManager/ToastManagerContext';
@@ -77,26 +76,6 @@ const renderWithRouter = (route = '/audit/johndoe') => {
7776
},
7877
});
7978

80-
const mockAppContext = {
81-
authenticatedUser: {
82-
userId: 1,
83-
username: 'testuser',
84-
email: 'testuser@example.com',
85-
roles: [],
86-
administrator: false,
87-
},
88-
config: {
89-
LMS_BASE_URL: 'http://localhost:18000',
90-
STUDIO_BASE_URL: 'http://localhost:18010',
91-
AUTHZ_MICROFRONTEND_URL: 'http://localhost:18012',
92-
ACCESS_TOKEN_COOKIE_NAME: 'edx-jwt-cookie-header-payload',
93-
BASE_URL: 'http://localhost:18012',
94-
ENVIRONMENT: 'test',
95-
LANGUAGE_PREFERENCE_COOKIE_NAME: 'openedx-language-preference',
96-
...process.env,
97-
} as unknown as ConfigDocument,
98-
};
99-
10079
return render(
10180
<AppContext.Provider value={mockAppContext}>
10281
<QueryClientProvider client={queryClient}>

src/authz-module/components/RenderPermissionColumn.tsx

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11
import { Icon } from '@openedx/paragon';
2-
import { PermissionMetadata, ResourceMetadata } from '@src/types';
2+
import { PermissionItem } from '@src/types';
33
import ResourceTooltip from './ResourceTooltip';
44

5-
export type PermissionItem = ResourceMetadata & {
6-
perms: PermissionMetadata[];
7-
};
8-
95
interface RenderPermissionColumnProps {
106
items: PermissionItem[];
117
}

src/authz-module/components/RenderPermissionInLine.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { Icon } from '@openedx/paragon';
2+
import { PermissionItem } from '@src/types';
23
import ResourceTooltip from './ResourceTooltip';
3-
import type { PermissionItem } from './RenderPermissionColumn';
44

55
interface RenderPermissionInLineProps {
66
items: PermissionItem[];

src/authz-module/components/UserPermissions.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ import {
77
libraryPermissions,
88
rolesLibraryObject,
99
} from '@src/authz-module/roles-permissions';
10-
import RenderPermissionColumn, { type PermissionItem } from './RenderPermissionColumn';
10+
import { PermissionItem } from '@src/types';
11+
import RenderPermissionColumn from './RenderPermissionColumn';
1112
import RenderPermissionInLine from './RenderPermissionInLine';
1213
import RenderAdminRole from './RenderAdminRole';
1314

src/authz-module/roles-permissions/library/utils.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import type { IntlShape } from '@edx/frontend-platform/i18n';
1+
import { createIntl } from '@edx/frontend-platform/i18n';
22
import { buildPermissionMatrixByResource } from './utils';
33

4-
const intl = { formatMessage: jest.fn((msg: any) => msg) } as unknown as IntlShape;
4+
const intl = createIntl({ locale: 'en', messages: {} });
55

66
const permissions = [
77
{

src/setupTest.tsx

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,9 @@ import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
1111
// Lazy so each test file's own `jest.mock('@edx/frontend-platform/auth', ...)`
1212
// (which is hoisted above this setup file's imports) is in effect by the time
1313
// callers do `mockHttpClient().mockReturnValue(...)`.
14-
export const mockHttpClient = (): jest.Mock => {
15-
// eslint-disable-next-line global-require
16-
const { getAuthenticatedHttpClient } = require('@edx/frontend-platform/auth');
17-
return getAuthenticatedHttpClient as jest.Mock;
18-
};
14+
export const mockHttpClient = (): jest.Mock => jest.requireMock('@edx/frontend-platform/auth').getAuthenticatedHttpClient;
1915

20-
const mockAppContext = {
16+
export const mockAppContext = {
2117
authenticatedUser: {
2218
userId: 1,
2319
username: 'testuser',

src/types.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,10 @@ export type PermissionMetadata = {
5656
icon?: React.ComponentType<React.SVGProps<SVGSVGElement>>;
5757
};
5858

59+
export type PermissionItem = ResourceMetadata & {
60+
perms: PermissionMetadata[];
61+
};
62+
5963
export type Org = {
6064
id: string;
6165
name: string;

0 commit comments

Comments
 (0)