Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ import { useTriggerUiActionServices } from '../es_query/util';
import { EsQueryRuleMetaData } from '../es_query/types';

export interface DataViewSelectPopoverProps {
dataView: DataView;
dataView?: DataView;
metadata?: EsQueryRuleMetaData;
onSelectDataView: (selectedDataView: DataView) => void;
onChangeMetaData: (metadata: EsQueryRuleMetaData) => void;
Expand Down Expand Up @@ -150,7 +150,7 @@ export const DataViewSelectPopover: React.FunctionComponent<DataViewSelectPopove
defaultMessage: 'data view',
})}
value={
dataView.getName() ??
dataView?.getName() ??
i18n.translate('xpack.stackAlerts.components.ui.alertParams.dataViewPlaceholder', {
defaultMessage: 'Select a data view',
})
Expand All @@ -159,7 +159,7 @@ export const DataViewSelectPopover: React.FunctionComponent<DataViewSelectPopove
onClick={() => {
setDataViewPopoverOpen(true);
}}
isInvalid={!dataView.id}
isInvalid={!dataView?.id}
/>
}
isOpen={dataViewPopoverOpen}
Expand Down Expand Up @@ -191,7 +191,7 @@ export const DataViewSelectPopover: React.FunctionComponent<DataViewSelectPopove
</EuiFlexGroup>
</EuiPopoverTitle>
<DataViewSelector
currentDataViewId={dataView.id}
currentDataViewId={dataView?.id}
dataViewsList={allDataViewItems}
setPopoverIsOpen={setDataViewPopoverOpen}
onChangeDataView={onChangeDataView}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ export const SearchSourceExpression = ({

data.search.searchSource
.create(initialSearchConfiguration)
.then((fetchedSearchSource) => setSearchSource(fetchedSearchSource))
.then(setSearchSource)
.catch(setParamsError);
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ const HIDDEN_FILTER_PANEL_OPTIONS: SearchBarProps['hiddenFilterPanelOptions'] =
];

interface LocalState {
index: DataView;
index?: DataView;
filter: Filter[];
query: Query;
thresholdComparator: CommonRuleParams['thresholdComparator'];
Expand Down Expand Up @@ -100,7 +100,7 @@ export const SearchSourceExpressionForm = (props: SearchSourceExpressionFormProp
return { ...currentState, [action.type]: action.payload };
},
{
index: searchSource.getField('index')!,
index: searchSource.getField('index'),
query: searchSource.getField('query')! as Query,
filter: mapAndFlattenFilters(searchSource.getField('filter') as Filter[]),
threshold: ruleParams.threshold ?? DEFAULT_VALUES.THRESHOLD,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -151,9 +151,6 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
supertest.delete(`/api/actions/connector/${id}`).set('kbn-xsrf', 'foo').expect(204, '');

const defineSearchSourceAlert = async (alertName: string) => {
await testSubjects.click('discoverAlertsButton');
await testSubjects.click('discoverCreateAlertButton');

await retry.waitFor('rule name value is correct', async () => {
await testSubjects.setValue('ruleNameInput', alertName);
const ruleName = await testSubjects.getAttribute('ruleNameInput', 'value');
Expand All @@ -175,6 +172,24 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await testSubjects.click('saveRuleButton');
};

const openDiscoverAlertFlyout = async () => {
await testSubjects.click('discoverAlertsButton');
await testSubjects.click('discoverCreateAlertButton');
};

const openManagementAlertFlyout = async () => {
await PageObjects.common.navigateToApp('management');
await PageObjects.header.waitUntilLoadingHasFinished();
await testSubjects.click('triggersActions');
await PageObjects.header.waitUntilLoadingHasFinished();
await testSubjects.click('createFirstRuleButton');
await PageObjects.header.waitUntilLoadingHasFinished();
await testSubjects.click('.es-query-SelectOption');
await PageObjects.header.waitUntilLoadingHasFinished();
await testSubjects.click('queryFormType_searchSource');
await PageObjects.header.waitUntilLoadingHasFinished();
};

const getResultsLink = async () => {
// getting the link
await dataGrid.clickRowToggle();
Expand Down Expand Up @@ -237,15 +252,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
log.debug('create output index');
await createOutputDataIndex();

log.debug('create data views');
const sourceDataViewResponse = await createDataView(SOURCE_DATA_INDEX);
const outputDataViewResponse = await createDataView(OUTPUT_DATA_INDEX);

log.debug('create connector');
connectorId = await createConnector();

sourceDataViewId = sourceDataViewResponse.body.data_view.id;
outputDataViewId = outputDataViewResponse.body.data_view.id;
});

after(async () => {
Expand All @@ -257,13 +265,29 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await security.testUser.restoreDefaults();
});

it('should create an alert when there is no data view', async () => {
await openManagementAlertFlyout();

// should not have data view selected by default
const dataViewSelector = await testSubjects.find('selectDataViewExpression');
expect(await dataViewSelector.getVisibleText()).to.eql('DATA VIEW\nSelect a data view');

log.debug('create data views');
const sourceDataViewResponse = await createDataView(SOURCE_DATA_INDEX);
const outputDataViewResponse = await createDataView(OUTPUT_DATA_INDEX);

sourceDataViewId = sourceDataViewResponse.body.data_view.id;
outputDataViewId = outputDataViewResponse.body.data_view.id;
});

it('should navigate to alert results via view in app link', async () => {
await PageObjects.common.navigateToApp('discover');
await PageObjects.discover.waitUntilSearchingHasFinished();
await PageObjects.discover.selectIndexPattern(SOURCE_DATA_INDEX);
await PageObjects.timePicker.setCommonlyUsedTime('Last_15 minutes');

// create an alert
await openDiscoverAlertFlyout();
await defineSearchSourceAlert(RULE_NAME);
await PageObjects.header.waitUntilLoadingHasFinished();

Expand Down Expand Up @@ -377,6 +401,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await PageObjects.discover.addRuntimeField('runtime-message-field', `emit('mock-message')`);

// create an alert
await openDiscoverAlertFlyout();
await defineSearchSourceAlert('test-adhoc-alert');
await PageObjects.header.waitUntilLoadingHasFinished();
sourceAdHocDataViewId = await PageObjects.discover.getCurrentDataViewId();
Expand Down