diff --git a/awx/ui/src/screens/ActivityStream/ActivityStream.js b/awx/ui/src/screens/ActivityStream/ActivityStream.js
index bb54049772..209da83669 100644
--- a/awx/ui/src/screens/ActivityStream/ActivityStream.js
+++ b/awx/ui/src/screens/ActivityStream/ActivityStream.js
@@ -188,6 +188,10 @@ function ActivityStream() {
>
{t`Notification Templates`}
+ {t`Instances`}
{t`Instance Groups`}
diff --git a/awx/ui/src/screens/InstanceGroup/InstanceGroups.js b/awx/ui/src/screens/InstanceGroup/InstanceGroups.js
index 3f92aa6abe..c4ca94541e 100644
--- a/awx/ui/src/screens/InstanceGroup/InstanceGroups.js
+++ b/awx/ui/src/screens/InstanceGroup/InstanceGroups.js
@@ -1,7 +1,7 @@
import React, { useCallback, useEffect, useState } from 'react';
import { t } from '@lingui/macro';
-import { Route, Switch } from 'react-router-dom';
+import { Route, Switch, useLocation } from 'react-router-dom';
import useRequest from 'hooks/useRequest';
import { SettingsAPI } from 'api';
@@ -14,6 +14,7 @@ import ContainerGroupAdd from './ContainerGroupAdd';
import ContainerGroup from './ContainerGroup';
function InstanceGroups() {
+ const { pathname } = useLocation();
const {
request: settingsRequest,
isLoading: isSettingsRequestLoading,
@@ -62,10 +63,14 @@ function InstanceGroups() {
});
}, []);
+ const streamType = pathname.includes('instances')
+ ? 'instance'
+ : 'instance_group';
+
return (
<>
diff --git a/awx/ui/src/screens/InstanceGroup/InstanceGroups.test.js b/awx/ui/src/screens/InstanceGroup/InstanceGroups.test.js
index 1a310dbe1b..fdd53c6e8f 100644
--- a/awx/ui/src/screens/InstanceGroup/InstanceGroups.test.js
+++ b/awx/ui/src/screens/InstanceGroup/InstanceGroups.test.js
@@ -1,10 +1,20 @@
import React from 'react';
import { shallow } from 'enzyme';
-
+import { InstanceGroupsAPI } from 'api';
import InstanceGroups from './InstanceGroups';
+const mockUseLocationValue = {
+ pathname: '',
+};
+jest.mock('api');
+jest.mock('react-router-dom', () => ({
+ ...jest.requireActual('react-router-dom'),
+ useLocation: () => mockUseLocationValue,
+}));
describe('', () => {
test('should set breadcrumbs', () => {
+ mockUseLocationValue.pathname = '/instance_groups';
+
const wrapper = shallow();
const header = wrapper.find('ScreenHeader');
@@ -15,4 +25,17 @@ describe('', () => {
'/instance_groups/container_group/add': 'Create new container group',
});
});
+ test('should set breadcrumbs', async () => {
+ mockUseLocationValue.pathname = '/instance_groups/1/instances';
+ InstanceGroupsAPI.readInstances.mockResolvedValue({
+ data: { results: [{ hostname: 'EC2', id: 1 }] },
+ });
+ InstanceGroupsAPI.readInstanceOptions.mockResolvedValue({
+ data: { actions: {} },
+ });
+
+ const wrapper = shallow();
+
+ expect(wrapper.find('ScreenHeader').prop('streamType')).toEqual('instance');
+ });
});