From 181132cd41cb32295f0b684c1e824362920d8cb4 Mon Sep 17 00:00:00 2001 From: Constance Date: Sun, 27 Jun 2021 21:45:39 -0700 Subject: [PATCH] [Enterprise Search] Test coverage pass (#103406) * Do not collect code coverage on test_helpers Note: some test helpers are no longer being used but might be some day - e.g., shallowWithIntl will be used on the beta badge * Fix uncovered type line - since we're not iterating over productNames, no need for it to be an array - it can be written more clearly in string union format * Fix branch coverage on index.tsx - Since KibanaLogic is setting `|| {}` fallbacks in any case, I've opted to remove them in this file and let fallbacks be handled there - Fixed typing to make it clear plugins can be undefined (i.e., disabled/optional, etc) in props + reorganize w/ comments - KibanaValues requires an Omit to override props types * Crawler DomainsTable test coverage/improvements - Fix test failing locally due to timezones by increasing the timezone offset - Cover missing branch line by adding a domain with no `lastCrawl` - Remove unnecessary extra beforeEach with dupe re-shallow/mounts - move getTable helper to its most relevant block (it's not being used in the generic column content checks, only in the actions column suite) Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> # Conflicts: # x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/domains_table.test.tsx --- x-pack/plugins/enterprise_search/jest.config.js | 1 + .../enterprise_search/public/applications/index.tsx | 4 ++-- .../applications/shared/kibana/kibana_logic.ts | 13 +++++++++---- .../public/applications/shared/types.ts | 3 +-- 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/x-pack/plugins/enterprise_search/jest.config.js b/x-pack/plugins/enterprise_search/jest.config.js index be9f7b9939a66..7d10d7aa87bf2 100644 --- a/x-pack/plugins/enterprise_search/jest.config.js +++ b/x-pack/plugins/enterprise_search/jest.config.js @@ -15,5 +15,6 @@ module.exports = { '/x-pack/plugins/enterprise_search/**/*.{ts,tsx}', '!/x-pack/plugins/enterprise_search/public/*.ts', '!/x-pack/plugins/enterprise_search/server/*.ts', + '!/x-pack/plugins/enterprise_search/public/applications/test_helpers/**/*.{ts,tsx}', ], }; diff --git a/x-pack/plugins/enterprise_search/public/applications/index.tsx b/x-pack/plugins/enterprise_search/public/applications/index.tsx index 414957656467a..ae0a6bf9185c8 100644 --- a/x-pack/plugins/enterprise_search/public/applications/index.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/index.tsx @@ -45,10 +45,10 @@ export const renderApp = ( const unmountKibanaLogic = mountKibanaLogic({ config, charts: plugins.charts, - cloud: plugins.cloud || {}, + cloud: plugins.cloud, history: params.history, navigateToUrl: core.application.navigateToUrl, - security: plugins.security || {}, + security: plugins.security, setBreadcrumbs: core.chrome.setBreadcrumbs, setChromeIsVisible: core.chrome.setIsVisible, setDocTitle: core.chrome.docTitle.change, diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/kibana/kibana_logic.ts b/x-pack/plugins/enterprise_search/public/applications/shared/kibana/kibana_logic.ts index 9c6db7d09f72c..d3b76f8dee9f0 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/kibana/kibana_logic.ts +++ b/x-pack/plugins/enterprise_search/public/applications/shared/kibana/kibana_logic.ts @@ -20,18 +20,23 @@ import { createHref, CreateHrefOptions } from '../react_router_helpers'; interface KibanaLogicProps { config: { host?: string }; + // Kibana core history: History; - cloud: Partial; - charts: ChartsPluginStart; navigateToUrl: ApplicationStart['navigateToUrl']; - security: Partial; setBreadcrumbs(crumbs: ChromeBreadcrumb[]): void; setChromeIsVisible(isVisible: boolean): void; setDocTitle(title: string): void; renderHeaderActions(HeaderActions: FC): void; + // Required plugins + charts: ChartsPluginStart; + // Optional plugins + cloud?: CloudSetup; + security?: SecurityPluginStart; } -export interface KibanaValues extends KibanaLogicProps { +export interface KibanaValues extends Omit { navigateToUrl(path: string, options?: CreateHrefOptions): Promise; + cloud: Partial; + security: Partial; } export const KibanaLogic = kea>({ diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/types.ts b/x-pack/plugins/enterprise_search/public/applications/shared/types.ts index 5a90dd2c4a6bb..4743e808cc6ea 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/types.ts +++ b/x-pack/plugins/enterprise_search/public/applications/shared/types.ts @@ -38,8 +38,7 @@ export interface RoleMapping { }; } -const productNames = [APP_SEARCH_PLUGIN.NAME, WORKPLACE_SEARCH_PLUGIN.NAME] as const; -export type ProductName = typeof productNames[number]; +export type ProductName = typeof APP_SEARCH_PLUGIN.NAME | typeof WORKPLACE_SEARCH_PLUGIN.NAME; export interface Invitation { email: string;