Skip to content

Commit

Permalink
[Enterprise Search] Test coverage pass (#103406)
Browse files Browse the repository at this point in the history
* 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 <[email protected]>
  • Loading branch information
Constance and kibanamachine authored Jun 28, 2021
1 parent d339479 commit 45dfaac
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 20 deletions.
1 change: 1 addition & 0 deletions x-pack/plugins/enterprise_search/jest.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,6 @@ module.exports = {
'<rootDir>/x-pack/plugins/enterprise_search/**/*.{ts,tsx}',
'!<rootDir>/x-pack/plugins/enterprise_search/public/*.ts',
'!<rootDir>/x-pack/plugins/enterprise_search/server/*.ts',
'!<rootDir>/x-pack/plugins/enterprise_search/public/applications/test_helpers/**/*.{ts,tsx}',
],
};
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,17 @@ const domains: CrawlerDomain[] = [
crawlRules: [],
entryPoints: [],
sitemaps: [],
lastCrawl: '2020-01-01T00:00:00-05:00',
createdOn: '2020-01-01T00:00:00-05:00',
lastCrawl: '2020-01-01T00:00:00-12:00',
createdOn: '2020-01-01T00:00:00-12:00',
},
{
id: '4567',
documentCount: 0,
url: 'empty.site',
crawlRules: [],
entryPoints: [],
sitemaps: [],
createdOn: '1970-01-01T00:00:00-12:00',
},
];

Expand Down Expand Up @@ -68,15 +77,6 @@ describe('DomainsTable', () => {
});

describe('columns', () => {
const getTable = () => wrapper.find(EuiInMemoryTable).dive().find(EuiBasicTable).dive();

beforeEach(() => {
wrapper = shallow(<DomainsTable />);
tableContent = mountWithIntl(<DomainsTable />)
.find(EuiInMemoryTable)
.text();
});

it('renders a url column', () => {
expect(tableContent).toContain('elastic.co');
});
Expand All @@ -92,8 +92,9 @@ describe('DomainsTable', () => {
});

describe('actions column', () => {
const getTable = () => wrapper.find(EuiInMemoryTable).dive().find(EuiBasicTable).dive();
const getActions = () => getTable().find('ExpandedItemActions');
const getActionItems = () => getActions().dive().find('DefaultItemAction');
const getActionItems = () => getActions().first().dive().find('DefaultItemAction');

it('will hide the action buttons if the user cannot manage/delete engines', () => {
setMockValues({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,18 +20,23 @@ import { createHref, CreateHrefOptions } from '../react_router_helpers';

interface KibanaLogicProps {
config: { host?: string };
// Kibana core
history: History;
cloud: Partial<CloudSetup>;
charts: ChartsPluginStart;
navigateToUrl: ApplicationStart['navigateToUrl'];
security: Partial<SecurityPluginStart>;
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<KibanaLogicProps, 'cloud' | 'security'> {
navigateToUrl(path: string, options?: CreateHrefOptions): Promise<void>;
cloud: Partial<CloudSetup>;
security: Partial<SecurityPluginStart>;
}

export const KibanaLogic = kea<MakeLogicType<KibanaValues>>({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit 45dfaac

Please sign in to comment.