diff --git a/.env b/.env
index f16685a..603b66a 100644
--- a/.env
+++ b/.env
@@ -39,3 +39,4 @@ HOTJAR_DEBUG=''
ACCOUNT_SETTINGS_URL=''
ACCOUNT_PROFILE_URL=''
ENABLE_NOTICES=''
+CAREER_LINK_URL=''
diff --git a/.env.development b/.env.development
index 9b319ba..83442cb 100644
--- a/.env.development
+++ b/.env.development
@@ -46,3 +46,4 @@ HOTJAR_DEBUG=''
ACCOUNT_SETTINGS_URL='http://localhost:1997'
ACCOUNT_PROFILE_URL='http://localhost:1995'
ENABLE_NOTICES=''
+CAREER_LINK_URL=''
diff --git a/.env.test b/.env.test
index 9dd6516..9314c0a 100644
--- a/.env.test
+++ b/.env.test
@@ -45,3 +45,4 @@ HOTJAR_DEBUG=''
ACCOUNT_SETTINGS_URL='http://account-settings-url.test'
ACCOUNT_PROFILE_URL='http://account-profile-url.test'
ENABLE_NOTICES=''
+CAREER_LINK_URL=''
diff --git a/src/App.jsx b/src/App.jsx
index a6ce7d7..5adba84 100755
--- a/src/App.jsx
+++ b/src/App.jsx
@@ -23,7 +23,7 @@ import ZendeskFab from 'components/ZendeskFab';
import track from 'tracking';
import fakeData from 'data/services/lms/fakeData/courses';
-import LearnerDashboardHeaderVariant from './containers/LearnerDashboardHeaderVariant';
+import LearnerDashboardHeader from './containers/LearnerDashboardHeader';
import messages from './messages';
@@ -77,7 +77,7 @@ export const App = () => {
{formatMessage(messages.pageTitle)}
-
+
{hasNetworkFailure
? (
diff --git a/src/App.test.jsx b/src/App.test.jsx
index 6734293..bc57ea7 100644
--- a/src/App.test.jsx
+++ b/src/App.test.jsx
@@ -12,14 +12,14 @@ import { Alert } from '@edx/paragon';
import { RequestKeys } from 'data/constants/requests';
import { reduxHooks } from 'hooks';
import Dashboard from 'containers/Dashboard';
-import LearnerDashboardHeaderVariant from 'containers/LearnerDashboardHeaderVariant';
+import LearnerDashboardHeader from 'containers/LearnerDashboardHeader';
import { App } from './App';
import messages from './messages';
jest.mock('@edx/frontend-component-footer', () => 'Footer');
jest.mock('containers/Dashboard', () => 'Dashboard');
-jest.mock('containers/LearnerDashboardHeaderVariant', () => 'LearnerDashboardHeaderVariant');
+jest.mock('containers/LearnerDashboardHeader', () => 'LearnerDashboardHeader');
jest.mock('components/ZendeskFab', () => 'ZendeskFab');
jest.mock('data/redux', () => ({
selectors: 'redux.selectors',
@@ -54,7 +54,7 @@ describe('App router component', () => {
expect(el.find(Helmet).find('title').text()).toEqual(useIntl().formatMessage(messages.pageTitle));
});
it('displays learner dashboard header', () => {
- expect(el.find(LearnerDashboardHeaderVariant).length).toEqual(1);
+ expect(el.find(LearnerDashboardHeader).length).toEqual(1);
});
it('wraps the page in a browser router', () => {
expect(el.find(Router)).toMatchObject(el);
diff --git a/src/__snapshots__/App.test.jsx.snap b/src/__snapshots__/App.test.jsx.snap
index 443fdba..d819557 100644
--- a/src/__snapshots__/App.test.jsx.snap
+++ b/src/__snapshots__/App.test.jsx.snap
@@ -11,7 +11,7 @@ exports[`App router component component initialize failure snapshot 1`] = `
-
+
-
+
@@ -63,7 +63,7 @@ exports[`App router component component refresh failure snapshot 1`] = `
-
+
{
- const { formatMessage } = useIntl();
- const { authenticatedUser } = React.useContext(AppContext);
- const dashboard = reduxHooks.useEnterpriseDashboardData();
- const { courseSearchUrl } = reduxHooks.usePlatformSettingsData();
- const isCollapsed = useIsCollapsed();
- const { profileImage } = authenticatedUser;
-
- return (
-
-
-
- {username}
-
-
-
- SWITCH DASHBOARD
- Personal
- {!!dashboard && (
-
- {dashboard.label} {formatMessage(messages.dashboard)}
-
- )}
-
-
- {formatMessage(messages.profile)}
-
- {isCollapsed && (
- <>
-
- {formatMessage(messages.viewPrograms)}
-
-
- {formatMessage(messages.exploreCourses)}
-
- >
- )}
-
- {formatMessage(messages.account)}
-
- {getConfig().ORDER_HISTORY_URL && (
-
- {formatMessage(messages.orderHistory)}
-
- )}
-
- {formatMessage(messages.help)}
-
-
-
- {formatMessage(messages.signOut)}
-
-
-
- );
-};
-
-AuthenticatedUserDropdown.propTypes = {
- username: PropTypes.string.isRequired,
-};
-
-export default AuthenticatedUserDropdown;
diff --git a/src/containers/LearnerDashboardHeader/AuthenticatedUserDropdown.test.jsx b/src/containers/LearnerDashboardHeader/AuthenticatedUserDropdown.test.jsx
deleted file mode 100644
index 9343b0a..0000000
--- a/src/containers/LearnerDashboardHeader/AuthenticatedUserDropdown.test.jsx
+++ /dev/null
@@ -1,63 +0,0 @@
-import { shallow } from 'enzyme';
-import { getConfig } from '@edx/frontend-platform';
-
-import { reduxHooks } from 'hooks';
-import { AuthenticatedUserDropdown } from './AuthenticatedUserDropdown';
-import { useIsCollapsed } from './hooks';
-
-jest.mock('@edx/frontend-platform', () => ({
- getConfig: jest.fn(),
-}));
-jest.mock('@edx/frontend-platform/react', () => ({
- AppContext: {
- authenticatedUser: {
- profileImage: 'profileImage',
- },
- },
-}));
-jest.mock('hooks', () => ({
- reduxHooks: {
- useEnterpriseDashboardData: jest.fn(),
- usePlatformSettingsData: jest.fn(() => ({
- courseSearchUrl: 'test-course-search-url',
- })),
- },
-}));
-jest.mock('containers/LearnerDashboardHeader/hooks', () => ({
- useIsCollapsed: jest.fn(),
- findCoursesNavDropdownClicked: (href) => jest.fn().mockName(`findCoursesNavDropdownClicked('${href}')`),
-}));
-
-const config = {
- ACCOUNT_PROFILE_URL: 'http://account-profile-url.test',
- ACCOUNT_SETTINGS_URL: 'http://account-settings-url.test',
- LOGOUT_URL: 'http://logout-url.test',
- ORDER_HISTORY_URL: 'http://order-history-url.test',
- SUPPORT_URL: 'http://localhost:18000/support',
-};
-getConfig.mockReturnValue(config);
-
-describe('AuthenticatedUserDropdown', () => {
- const props = {
- username: 'username',
- };
- const defaultDashboardData = {
- label: 'label',
- url: 'url',
- };
-
- describe('snapshots', () => {
- test('with enterprise dashboard', () => {
- reduxHooks.useEnterpriseDashboardData.mockReturnValueOnce(defaultDashboardData);
- useIsCollapsed.mockReturnValueOnce(true);
- const wrapper = shallow();
- expect(wrapper).toMatchSnapshot();
- });
- test('without enterprise dashboard and expanded', () => {
- reduxHooks.useEnterpriseDashboardData.mockReturnValueOnce(null);
- useIsCollapsed.mockReturnValueOnce(false);
- const wrapper = shallow();
- expect(wrapper).toMatchSnapshot();
- });
- });
-});
diff --git a/src/containers/LearnerDashboardHeaderVariant/BrandLogo.jsx b/src/containers/LearnerDashboardHeader/BrandLogo.jsx
similarity index 100%
rename from src/containers/LearnerDashboardHeaderVariant/BrandLogo.jsx
rename to src/containers/LearnerDashboardHeader/BrandLogo.jsx
diff --git a/src/containers/LearnerDashboardHeaderVariant/BrandLogo.test.jsx b/src/containers/LearnerDashboardHeader/BrandLogo.test.jsx
similarity index 100%
rename from src/containers/LearnerDashboardHeaderVariant/BrandLogo.test.jsx
rename to src/containers/LearnerDashboardHeader/BrandLogo.test.jsx
diff --git a/src/containers/LearnerDashboardHeaderVariant/CollapsedHeader/CollapseMenuBody.jsx b/src/containers/LearnerDashboardHeader/CollapsedHeader/CollapseMenuBody.jsx
similarity index 86%
rename from src/containers/LearnerDashboardHeaderVariant/CollapsedHeader/CollapseMenuBody.jsx
rename to src/containers/LearnerDashboardHeader/CollapsedHeader/CollapseMenuBody.jsx
index 557e279..c2982d4 100644
--- a/src/containers/LearnerDashboardHeaderVariant/CollapsedHeader/CollapseMenuBody.jsx
+++ b/src/containers/LearnerDashboardHeader/CollapsedHeader/CollapseMenuBody.jsx
@@ -5,7 +5,7 @@ import { getConfig } from '@edx/frontend-platform';
import { useIntl } from '@edx/frontend-platform/i18n';
import { AppContext } from '@edx/frontend-platform/react';
-import { Button } from '@edx/paragon';
+import { Button, Badge } from '@edx/paragon';
import urls from 'data/services/lms/urls';
import { reduxHooks } from 'hooks';
@@ -45,11 +45,19 @@ export const CollapseMenuBody = ({ isOpen }) => {
{authenticatedUser && (
<>
- {dashboard && (
+ {!!dashboard && (
)}
+ {!dashboard && getConfig().CAREER_LINK_URL && (
+
+ )}