[ResponseOps][Connectors]Preconfigured connectors of disabled types show as disabled, but are actually enabled (#198792)

Closes https://github.com/elastic/kibana/issues/190420

## Summary

- the preconfigured connectors should be displayed as enabled and not
have the tooltip icon even if the xpack.actions.enabledActionTypes: []
setting is present in the kibana.yml (to disable all the connector
types)

![Screenshot 2024-11-04 at 14 38
10](https://github.com/user-attachments/assets/ee817087-a079-481b-bf82-b7247f3ea923)

---------

Co-authored-by: Antonio <antoniodcoelho@gmail.com>
This commit is contained in:
Georgiana-Andreea Onoleață 2024-11-06 16:43:48 +02:00 committed by GitHub
parent deeb9fe32a
commit 56b0ac2eda
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 41 additions and 6 deletions

View file

@ -99,6 +99,26 @@ describe('checkActionTypeEnabled', () => {
}
`);
});
test('checkActionTypeEnabled returns true when actionType is disabled by config', async () => {
const actionType: ActionType = {
id: '1',
minimumLicenseRequired: 'basic',
supportedFeatureIds: ['alerting'],
name: 'my action',
enabled: false,
enabledInConfig: false,
enabledInLicense: true,
isSystemActionType: false,
};
const isPreconfiguredConnector = true;
expect(checkActionTypeEnabled(actionType, isPreconfiguredConnector)).toMatchInlineSnapshot(`
Object {
"isEnabled": true,
}
`);
});
});
describe('checkActionFormActionTypeEnabled', () => {

View file

@ -22,13 +22,14 @@ export interface IsDisabledResult {
}
export const checkActionTypeEnabled = (
actionType?: ActionType
actionType?: ActionType,
isPreconfiguredConnector: boolean = false
): IsEnabledResult | IsDisabledResult => {
if (actionType?.enabledInLicense === false) {
return getLicenseCheckResult(actionType);
}
if (actionType?.enabledInConfig === false) {
if (actionType?.enabledInConfig === false && isPreconfiguredConnector === false) {
return configurationCheckResult;
}

View file

@ -750,6 +750,12 @@ describe('actions_connectors_list', () => {
referencedByCount: 1,
config: {},
},
{
id: '3',
actionTypeId: 'test3',
isPreconfigured: true,
isDeprecated: false,
},
] as ActionConnector[]
}
setActions={() => {}}
@ -766,7 +772,7 @@ describe('actions_connectors_list', () => {
it('renders table of connectors', async () => {
await setup();
expect(wrapper.find('EuiInMemoryTable')).toHaveLength(1);
expect(wrapper.find('EuiTableRow')).toHaveLength(2);
expect(wrapper.find('EuiTableRow')).toHaveLength(3);
expect(wrapper.find('EuiTableRow').at(0).prop('className')).toEqual(
'actConnectorsList__tableRowDisabled'
);
@ -774,6 +780,13 @@ describe('actions_connectors_list', () => {
'actConnectorsList__tableRowDisabled'
);
});
it('renders preconfigured connectors as enabled', async () => {
await setup();
expect(wrapper.find('EuiTableRow').at(2).prop('className')).not.toEqual(
'actConnectorsList__tableRowDisabled'
);
});
});
describe('component with deprecated connectors', () => {

View file

@ -199,9 +199,9 @@ const ActionsConnectorsList = ({
truncateText: true,
render: (value: string, item: ActionConnectorTableItem) => {
const checkEnabledResult = checkActionTypeEnabled(
actionTypesIndex && actionTypesIndex[item.actionTypeId]
actionTypesIndex && actionTypesIndex[item.actionTypeId],
item.isPreconfigured
);
/**
* TODO: Remove when connectors can provide their own UX message.
* Issue: https://github.com/elastic/kibana/issues/114507
@ -363,7 +363,8 @@ const ActionsConnectorsList = ({
columns={actionsTableColumns}
rowProps={(item: ActionConnectorTableItem) => ({
className:
!actionTypesIndex || !actionTypesIndex[item.actionTypeId]?.enabled
!item.isPreconfigured &&
(!actionTypesIndex || !actionTypesIndex[item.actionTypeId]?.enabled)
? 'actConnectorsList__tableRowDisabled'
: '',
'data-test-subj': 'connectors-row',