Fix logic issues resulting from CrawlerLogic/CrawlerOverviewLogic split (#111564)

This commit is contained in:
Byron Hulcher 2021-09-08 14:13:09 -04:00 committed by GitHub
parent 284bc6663c
commit d03efa227b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 18 additions and 4 deletions

View file

@ -15,7 +15,7 @@ import { i18n } from '@kbn/i18n';
import { FormattedMessage } from '@kbn/i18n/react';
import { CrawlerSingleDomainLogic } from '../crawler_single_domain_logic';
import { getDeleteDomainSuccessMessage } from '../utils';
import { getDeleteDomainConfirmationMessage } from '../utils';
export const DeleteDomainPanel: React.FC = ({}) => {
const { domain } = useValues(CrawlerSingleDomainLogic);
@ -61,7 +61,7 @@ export const DeleteDomainPanel: React.FC = ({}) => {
color="danger"
iconType="trash"
onClick={() => {
if (confirm(getDeleteDomainSuccessMessage(domain.url))) {
if (confirm(getDeleteDomainConfirmationMessage(domain.url))) {
deleteDomain(domain);
}
}}

View file

@ -45,7 +45,7 @@ interface CrawlerActions {
}
export const CrawlerLogic = kea<MakeLogicType<CrawlerValues, CrawlerActions>>({
path: ['enterprise_search', 'app_search', 'crawler', 'crawler_overview'],
path: ['enterprise_search', 'app_search', 'crawler_logic'],
actions: {
clearTimeoutId: true,
createNewTimeoutForCrawlRequests: (duration) => ({ duration }),

View file

@ -25,7 +25,7 @@ export const CrawlerOverviewLogic = kea<MakeLogicType<{}, CrawlerOverviewActions
actions: {
deleteDomain: (domain) => ({ domain }),
},
listeners: ({ actions, values }) => ({
listeners: () => ({
deleteDomain: async ({ domain }) => {
const { http } = HttpLogic.values;
const { engineName } = EngineLogic.values;

View file

@ -13,8 +13,17 @@ import {
} from '../../../__mocks__/kea_logic';
import '../../__mocks__/engine_logic.mock';
jest.mock('./crawler_logic', () => ({
CrawlerLogic: {
actions: {
fetchCrawlerData: jest.fn(),
},
},
}));
import { nextTick } from '@kbn/test/jest';
import { CrawlerLogic } from './crawler_logic';
import { CrawlerSingleDomainLogic, CrawlerSingleDomainValues } from './crawler_single_domain_logic';
import { CrawlerDomain, CrawlerPolicies, CrawlerRules } from './types';
@ -150,6 +159,7 @@ describe('CrawlerSingleDomainLogic', () => {
describe('listeners', () => {
describe('deleteDomain', () => {
it('flashes a success toast and redirects the user to the crawler overview on success', async () => {
jest.spyOn(CrawlerLogic.actions, 'fetchCrawlerData');
const { navigateToUrl } = mockKibanaValues;
http.delete.mockReturnValue(Promise.resolve());
@ -161,6 +171,7 @@ describe('CrawlerSingleDomainLogic', () => {
'/internal/app_search/engines/some-engine/crawler/domains/1234'
);
expect(CrawlerLogic.actions.fetchCrawlerData).toHaveBeenCalled();
expect(flashSuccessToast).toHaveBeenCalled();
expect(navigateToUrl).toHaveBeenCalledWith('/engines/some-engine/crawler');
});

View file

@ -14,6 +14,8 @@ import { KibanaLogic } from '../../../shared/kibana';
import { ENGINE_CRAWLER_PATH } from '../../routes';
import { EngineLogic, generateEnginePath } from '../engine';
import { CrawlerLogic } from './crawler_logic';
import { CrawlerDomain, EntryPoint, Sitemap, CrawlRule } from './types';
import { crawlerDomainServerToClient, getDeleteDomainSuccessMessage } from './utils';
@ -78,6 +80,7 @@ export const CrawlerSingleDomainLogic = kea<
`/internal/app_search/engines/${engineName}/crawler/domains/${domain.id}`
);
CrawlerLogic.actions.fetchCrawlerData();
flashSuccessToast(getDeleteDomainSuccessMessage(domain.url));
KibanaLogic.values.navigateToUrl(generateEnginePath(ENGINE_CRAWLER_PATH));
} catch (e) {