diff --git a/awx/ui_next/src/screens/Host/HostList/HostListItem.jsx b/awx/ui_next/src/screens/Host/HostList/HostListItem.jsx
index 3652f2e52b..21c238fb23 100644
--- a/awx/ui_next/src/screens/Host/HostList/HostListItem.jsx
+++ b/awx/ui_next/src/screens/Host/HostList/HostListItem.jsx
@@ -27,97 +27,78 @@ const DataListAction = styled(_DataListAction)`
grid-template-columns: min-content 40px;
`;
-class HostListItem extends React.Component {
- static propTypes = {
- host: Host.isRequired,
- detailUrl: string.isRequired,
- isSelected: bool.isRequired,
- onSelect: func.isRequired,
- };
+function HostListItem({ i18n, host, isSelected, onSelect, detailUrl }) {
+ const labelId = `check-action-${host.id}`;
+ const recentPlaybookJobs = host.summary_fields.recent_jobs.map(job => ({
+ ...job,
+ type: 'job',
+ }));
- render() {
- const { host, isSelected, onSelect, detailUrl, i18n } = this.props;
-
- const recentPlaybookJobs = host.summary_fields.recent_jobs.map(job => ({
- ...job,
- type: 'job',
- }));
-
- const labelId = `check-action-${host.id}`;
- return (
-
-
-
-
-
- {host.name}
-
- ,
-
-
- ,
-
- {host.summary_fields.inventory && (
-
- {i18n._(t`Inventory`)}
-
- {host.summary_fields.inventory.name}
-
-
- )}
- ,
-
-
- ,
-
- {host.summary_fields.user_capabilities.edit && (
-
-
-
- )}
- ,
- ]}
- />
-
-
- {host.summary_fields.user_capabilities.edit && (
-
-
-
- )}
-
-
-
- );
- }
+ return (
+
+
+
+
+
+ {host.name}
+
+ ,
+
+
+ ,
+
+ {host.summary_fields.inventory && (
+
+ {i18n._(t`Inventory`)}
+
+ {host.summary_fields.inventory.name}
+
+
+ )}
+ ,
+ ]}
+ />
+
+
+ {host.summary_fields.user_capabilities.edit && (
+
+
+
+ )}
+
+
+
+ );
}
+
+HostListItem.propTypes = {
+ host: Host.isRequired,
+ detailUrl: string.isRequired,
+ isSelected: bool.isRequired,
+ onSelect: func.isRequired,
+};
+
export default withI18n()(HostListItem);
diff --git a/awx/ui_next/src/screens/Host/HostList/HostListItem.test.jsx b/awx/ui_next/src/screens/Host/HostList/HostListItem.test.jsx
index 3605a62546..c4958e11c2 100644
--- a/awx/ui_next/src/screens/Host/HostList/HostListItem.test.jsx
+++ b/awx/ui_next/src/screens/Host/HostList/HostListItem.test.jsx
@@ -3,7 +3,7 @@ import { mountWithContexts } from '@testUtils/enzymeHelpers';
import HostsListItem from './HostListItem';
-let onToggleHost;
+const onToggleHost = jest.fn();
const mockHost = {
id: 1,
@@ -23,16 +23,10 @@ const mockHost = {
};
describe('', () => {
+ let wrapper;
+
beforeEach(() => {
- onToggleHost = jest.fn();
- });
-
- afterEach(() => {
- jest.clearAllMocks();
- });
-
- test('edit button shown to users with edit capabilities', () => {
- const wrapper = mountWithContexts(
+ wrapper = mountWithContexts(
', () => {
onToggleHost={onToggleHost}
/>
);
+ });
+
+ afterEach(() => {
+ jest.clearAllMocks();
+ });
+
+ test('edit button shown to users with edit capabilities', () => {
expect(wrapper.find('PencilAltIcon').exists()).toBeTruthy();
});
test('edit button hidden from users without edit capabilities', () => {
const copyMockHost = Object.assign({}, mockHost);
copyMockHost.summary_fields.user_capabilities.edit = false;
- const wrapper = mountWithContexts(
+ wrapper = mountWithContexts(
', () => {
);
expect(wrapper.find('PencilAltIcon').exists()).toBeFalsy();
});
+
+ test('should display host toggle', () => {
+ expect(wrapper.find('HostToggle').length).toBe(1);
+ });
});