diff --git a/awx/ui_next/src/screens/ExecutionEnvironment/ExecutionEnvironmentDetails/ExecutionEnvironmentDetails.jsx b/awx/ui_next/src/screens/ExecutionEnvironment/ExecutionEnvironmentDetails/ExecutionEnvironmentDetails.jsx
index 68b9f9879d..e777003c92 100644
--- a/awx/ui_next/src/screens/ExecutionEnvironment/ExecutionEnvironmentDetails/ExecutionEnvironmentDetails.jsx
+++ b/awx/ui_next/src/screens/ExecutionEnvironment/ExecutionEnvironmentDetails/ExecutionEnvironmentDetails.jsx
@@ -26,6 +26,7 @@ function ExecutionEnvironmentDetails({ executionEnvironment, i18n }) {
pull,
organization,
summary_fields,
+ managed_by_tower: managedByTower,
} = executionEnvironment;
const {
@@ -103,25 +104,27 @@ function ExecutionEnvironmentDetails({ executionEnvironment, i18n }) {
dataCy="execution-environment-modified"
/>
-
-
-
- {i18n._(t`Delete`)}
-
-
+ {!managedByTower && (
+
+
+
+ {i18n._(t`Delete`)}
+
+
+ )}
{error && (
', () => {
expect(dates).toHaveLength(2);
expect(dates.at(0).prop('date')).toEqual(executionEnvironment.created);
expect(dates.at(1).prop('date')).toEqual(executionEnvironment.modified);
+ const editButton = wrapper.find('Button[aria-label="edit"]');
+ expect(editButton.text()).toEqual('Edit');
+ expect(editButton.prop('to')).toBe('/execution_environments/17/edit');
+
+ const deleteButton = wrapper.find('Button[aria-label="Delete"]');
+ expect(deleteButton.text()).toEqual('Delete');
});
test('should render organization detail', async () => {
@@ -135,4 +141,38 @@ describe('', () => {
expect(ExecutionEnvironmentsAPI.destroy).toHaveBeenCalledTimes(1);
expect(history.location.pathname).toBe('/execution_environments');
});
+
+ test('should not render action buttons to ee managed by tower', async () => {
+ await act(async () => {
+ wrapper = mountWithContexts(
+
+ );
+ });
+ wrapper.update();
+
+ expect(wrapper.find('Detail[label="Image"]').prop('value')).toEqual(
+ executionEnvironment.image
+ );
+ expect(wrapper.find('Detail[label="Description"]').prop('value')).toEqual(
+ 'Foo'
+ );
+ expect(wrapper.find('Detail[label="Organization"]').prop('value')).toEqual(
+ 'Globally Available'
+ );
+ expect(
+ wrapper.find('Detail[label="Credential"]').prop('value').props.children
+ ).toEqual(executionEnvironment.summary_fields.credential.name);
+ const dates = wrapper.find('UserDateDetail');
+ expect(dates).toHaveLength(2);
+ expect(dates.at(0).prop('date')).toEqual(executionEnvironment.created);
+ expect(dates.at(1).prop('date')).toEqual(executionEnvironment.modified);
+ expect(wrapper.find('Button[aria-label="edit"]')).toHaveLength(0);
+
+ expect(wrapper.find('Button[aria-label="Delete"]')).toHaveLength(0);
+ });
});
diff --git a/awx/ui_next/src/screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentListItem.test.jsx b/awx/ui_next/src/screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentListItem.test.jsx
index c32cb7ab4f..0df9bfcf31 100644
--- a/awx/ui_next/src/screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentListItem.test.jsx
+++ b/awx/ui_next/src/screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentListItem.test.jsx
@@ -23,6 +23,7 @@ describe('', () => {
summary_fields: {
user_capabilities: { edit: true, copy: true, delete: true },
},
+ managed_by_tower: false,
};
test('should mount successfully', async () => {
@@ -144,4 +145,46 @@ describe('', () => {
);
expect(wrapper.find('CopyButton').length).toBe(0);
});
+
+ test('should not render the pencil action for ee managed by tower', async () => {
+ await act(async () => {
+ wrapper = mountWithContexts(
+
+ );
+ });
+ expect(
+ wrapper
+ .find('Td')
+ .at(1)
+ .text()
+ ).toBe(executionEnvironment.name);
+ expect(
+ wrapper
+ .find('Td')
+ .at(2)
+ .text()
+ ).toBe(executionEnvironment.image);
+
+ expect(
+ wrapper
+ .find('Td')
+ .at(3)
+ .text()
+ ).toBe('Globally Available');
+
+ expect(wrapper.find('PencilAltIcon').exists()).toBeFalsy();
+ });
});