Skip to content

Commit b7bb193

Browse files
authored
[Actions UI] Fixed Connectors edit flyout retains state after being closed (#71911)
* [Actions UI] Fixed Connectors edit flyout retains state after being closed * Fixed failing test
1 parent d0afbd8 commit b7bb193

File tree

2 files changed

+46
-36
lines changed

2 files changed

+46
-36
lines changed

x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_edit_flyout.tsx

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,20 @@ export const ConnectorEditFlyout = ({
5151
consumer,
5252
} = useActionsConnectorsContext();
5353
const canSave = hasSaveActionsCapability(capabilities);
54-
const closeFlyout = useCallback(() => setEditFlyoutVisibility(false), [setEditFlyoutVisibility]);
54+
5555
const [{ connector }, dispatch] = useReducer(connectorReducer, {
5656
connector: { ...initialConnector, secrets: {} },
5757
});
5858
const [isSaving, setIsSaving] = useState<boolean>(false);
59+
const setConnector = (key: string, value: any) => {
60+
dispatch({ command: { type: 'setConnector' }, payload: { key, value } });
61+
};
62+
63+
const closeFlyout = useCallback(() => {
64+
setEditFlyoutVisibility(false);
65+
setConnector('connector', { ...initialConnector, secrets: {} });
66+
// eslint-disable-next-line react-hooks/exhaustive-deps
67+
}, [setEditFlyoutVisibility]);
5968

6069
if (!editFlyoutVisible) {
6170
return null;
@@ -213,7 +222,7 @@ export const ConnectorEditFlyout = ({
213222
<EuiFlyoutFooter>
214223
<EuiFlexGroup justifyContent="spaceBetween">
215224
<EuiFlexItem grow={false}>
216-
<EuiButtonEmpty onClick={closeFlyout}>
225+
<EuiButtonEmpty onClick={closeFlyout} data-test-subj="cancelSaveEditedConnectorButton">
217226
{i18n.translate(
218227
'xpack.triggersActionsUI.sections.editConnectorForm.cancelButtonLabel',
219228
{

x-pack/test/functional_with_es_ssl/apps/triggers_actions_ui/connectors.ts

Lines changed: 35 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -63,18 +63,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
6363
it('should edit a connector', async () => {
6464
const connectorName = generateUniqueKey();
6565
const updatedConnectorName = `${connectorName}updated`;
66-
67-
await pageObjects.triggersActionsUI.clickCreateConnectorButton();
68-
69-
await testSubjects.click('.slack-card');
70-
71-
await testSubjects.setValue('nameInput', connectorName);
72-
73-
await testSubjects.setValue('slackWebhookUrlInput', 'https://test');
74-
75-
await find.clickByCssSelector('[data-test-subj="saveNewActionButton"]:not(disabled)');
76-
77-
await pageObjects.common.closeToast();
66+
await createConnector(connectorName);
7867

7968
await pageObjects.triggersActionsUI.searchConnectors(connectorName);
8069

@@ -103,19 +92,31 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
10392
]);
10493
});
10594

106-
it('should delete a connector', async () => {
107-
async function createConnector(connectorName: string) {
108-
await pageObjects.triggersActionsUI.clickCreateConnectorButton();
95+
it('should reset connector when canceling an edit', async () => {
96+
const connectorName = generateUniqueKey();
97+
await createConnector(connectorName);
98+
await pageObjects.triggersActionsUI.searchConnectors(connectorName);
99+
100+
const searchResultsBeforeEdit = await pageObjects.triggersActionsUI.getConnectorsList();
101+
expect(searchResultsBeforeEdit.length).to.eql(1);
109102

110-
await testSubjects.click('.slack-card');
103+
await find.clickByCssSelector('[data-test-subj="connectorsTableCell-name"] button');
111104

112-
await testSubjects.setValue('nameInput', connectorName);
105+
await testSubjects.setValue('nameInput', 'some test name to cancel');
106+
await testSubjects.click('cancelSaveEditedConnectorButton');
113107

114-
await testSubjects.setValue('slackWebhookUrlInput', 'https://test');
108+
await find.waitForDeletedByCssSelector('[data-test-subj="cancelSaveEditedConnectorButton"]');
115109

116-
await find.clickByCssSelector('[data-test-subj="saveNewActionButton"]:not(disabled)');
117-
await pageObjects.common.closeToast();
118-
}
110+
await pageObjects.triggersActionsUI.searchConnectors(connectorName);
111+
112+
await find.clickByCssSelector('[data-test-subj="connectorsTableCell-name"] button');
113+
const nameInputAfterCancel = await testSubjects.find('nameInput');
114+
const textAfterCancel = await nameInputAfterCancel.getAttribute('value');
115+
expect(textAfterCancel).to.eql(connectorName);
116+
await testSubjects.click('euiFlyoutCloseButton');
117+
});
118+
119+
it('should delete a connector', async () => {
119120
const connectorName = generateUniqueKey();
120121
await createConnector(connectorName);
121122

@@ -141,19 +142,6 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
141142
});
142143

143144
it('should bulk delete connectors', async () => {
144-
async function createConnector(connectorName: string) {
145-
await pageObjects.triggersActionsUI.clickCreateConnectorButton();
146-
147-
await testSubjects.click('.slack-card');
148-
149-
await testSubjects.setValue('nameInput', connectorName);
150-
151-
await testSubjects.setValue('slackWebhookUrlInput', 'https://test');
152-
153-
await find.clickByCssSelector('[data-test-subj="saveNewActionButton"]:not(disabled)');
154-
await pageObjects.common.closeToast();
155-
}
156-
157145
const connectorName = generateUniqueKey();
158146
await createConnector(connectorName);
159147

@@ -208,4 +196,17 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
208196
expect(await testSubjects.exists('saveEditedActionButton')).to.be(false);
209197
});
210198
});
199+
200+
async function createConnector(connectorName: string) {
201+
await pageObjects.triggersActionsUI.clickCreateConnectorButton();
202+
203+
await testSubjects.click('.slack-card');
204+
205+
await testSubjects.setValue('nameInput', connectorName);
206+
207+
await testSubjects.setValue('slackWebhookUrlInput', 'https://test');
208+
209+
await find.clickByCssSelector('[data-test-subj="saveNewActionButton"]:not(disabled)');
210+
await pageObjects.common.closeToast();
211+
}
211212
};

0 commit comments

Comments
 (0)