Skip to content

Commit

Permalink
[React18] Migrated test suites to accommodate changes to testing libr…
Browse files Browse the repository at this point in the history
…ary owned by kibana-security
  • Loading branch information
eokoneyo committed Nov 22, 2024
1 parent 11d8f0c commit 7551f05
Show file tree
Hide file tree
Showing 9 changed files with 41 additions and 43 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
* License v3.0 only", or the "Server Side Public License, v 1".
*/

import { act, renderHook, type WrapperComponent } from '@testing-library/react-hooks';
import { act, renderHook, waitFor } from '@testing-library/react';
import React from 'react';
import { BehaviorSubject, first, lastValueFrom, of } from 'rxjs';

Expand Down Expand Up @@ -35,7 +35,7 @@ const security = {

const { http, notifications } = core;

const wrapper: WrapperComponent<React.PropsWithChildren<{}>> = ({ children }) => (
const wrapper = ({ children }: React.PropsWithChildren<unknown>) => (
<UserProfilesKibanaProvider
core={core}
security={security}
Expand Down Expand Up @@ -78,7 +78,7 @@ describe('useUpdateUserProfile() hook', () => {
await lastValueFrom(updateDone.pipe(first((v) => v === true)));
});

const { result, waitForNextUpdate } = renderHook(() => useUpdateUserProfile(), { wrapper });
const { result } = renderHook(() => useUpdateUserProfile(), { wrapper });
const { update } = result.current;

expect(result.current.isLoading).toBeFalsy();
Expand All @@ -90,9 +90,7 @@ describe('useUpdateUserProfile() hook', () => {
expect(result.current.isLoading).toBeTruthy();

updateDone.next(true); // Resolve the http.post promise
await waitForNextUpdate();

expect(result.current.isLoading).toBeFalsy();
await waitFor(() => expect(result.current.isLoading).toBeFalsy());
});

test('should show a success notification by default', async () => {
Expand All @@ -118,7 +116,9 @@ describe('useUpdateUserProfile() hook', () => {
return true;
};

const { result } = renderHook(() => useUpdateUserProfile({ pageReloadChecker }), { wrapper });
const { result } = renderHook(() => useUpdateUserProfile({ pageReloadChecker }), {
wrapper,
});
const { update } = result.current;

await act(async () => {
Expand Down Expand Up @@ -146,7 +146,9 @@ describe('useUpdateUserProfile() hook', () => {
userProfile$: of(initialValue),
};

const { result } = renderHook(() => useUpdateUserProfile({ pageReloadChecker }), { wrapper });
const { result } = renderHook(() => useUpdateUserProfile({ pageReloadChecker }), {
wrapper,
});
const { update } = result.current;

const nextValue = { userSettings: { darkMode: 'light' as const } };
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* 2.0.
*/

import { act, renderHook } from '@testing-library/react-hooks';
import { act, renderHook } from '@testing-library/react';

import type { RevertFunction } from './form_changes';
import { useFormChanges } from './form_changes';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,14 @@ describe('Tags', () => {
};

beforeEach(() => {
jest.clearAllMocks();
useGetTagsMock.mockReturnValue({ data: ['test'] });
appMockRender = createAppMockRenderer();
});

afterEach(() => {
jest.clearAllMocks();
});

it('it renders', async () => {
appMockRender.render(
<MockHookWrapperComponent>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* 2.0.
*/

import { act, renderHook } from '@testing-library/react-hooks';
import { act, renderHook } from '@testing-library/react';
import { mount } from 'enzyme';
import type { FC, PropsWithChildren } from 'react';
import React from 'react';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* 2.0.
*/

import { renderHook } from '@testing-library/react-hooks';
import { renderHook } from '@testing-library/react';
import React from 'react';

import { coreMock } from '@kbn/core/public/mocks';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* 2.0.
*/

import { renderHook } from '@testing-library/react-hooks';
import { renderHook } from '@testing-library/react';
import React from 'react';

import { coreMock } from '@kbn/core/public/mocks';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ describe('EditSpaceContentTab', () => {
</TestComponent>
);

await waitFor(() => null);
await waitFor(() => new Promise((resolve) => resolve(null)));

expect(getSpaceContentSpy).toHaveBeenCalledTimes(1);
expect(getSpaceContentSpy).toHaveBeenCalledWith(space.id);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* 2.0.
*/

import { renderHook } from '@testing-library/react-hooks';
import { renderHook } from '@testing-library/react';
import type { PropsWithChildren } from 'react';
import React from 'react';

Expand Down Expand Up @@ -88,10 +88,8 @@ describe('EditSpaceProvider', () => {
});

it('throws when the hook is used within a tree that does not have the provider', () => {
const { result } = renderHook(useEditSpaceServices);
expect(result.error).toBeDefined();
expect(result.error?.message).toEqual(
expect.stringMatching('EditSpaceService Context is missing.')
expect(() => renderHook(useEditSpaceServices)).toThrow(
/EditSpaceService Context is missing./
);
});
});
Expand All @@ -109,12 +107,7 @@ describe('EditSpaceProvider', () => {
});

it('throws when the hook is used within a tree that does not have the provider', () => {
const { result } = renderHook(useEditSpaceStore);

expect(result.error).toBeDefined();
expect(result.error?.message).toEqual(
expect.stringMatching('EditSpaceStore Context is missing.')
);
expect(() => renderHook(useEditSpaceStore)).toThrow(/EditSpaceStore Context is missing./);
});
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ describe('PrivilegesRolesForm', () => {

renderPrivilegeRolesForm();

await waitFor(() => null);
await waitFor(() => new Promise((resolve) => resolve(null)));

['all', 'read', 'custom'].forEach((privilege) => {
expect(screen.queryByTestId(`${privilege}-privilege-button`)).not.toBeInTheDocument();
Expand All @@ -174,9 +174,9 @@ describe('PrivilegesRolesForm', () => {

renderPrivilegeRolesForm();

await waitFor(() => null);

expect(screen.getByTestId('space-assign-role-create-roles-privilege-button')).toBeDisabled();
await waitFor(() =>
expect(screen.getByTestId('space-assign-role-create-roles-privilege-button')).toBeDisabled()
);
});

it('makes a request to refetch available roles if page transitions back from a user interaction page visibility change', () => {
Expand Down Expand Up @@ -208,7 +208,7 @@ describe('PrivilegesRolesForm', () => {
preSelectedRoles: roles,
});

await waitFor(() => null);
await waitFor(() => new Promise((resolve) => resolve(null)));

expect(screen.getByTestId(`${FEATURE_PRIVILEGES_READ}-privilege-button`)).toHaveAttribute(
'aria-pressed',
Expand All @@ -234,11 +234,11 @@ describe('PrivilegesRolesForm', () => {
],
});

await waitFor(() => null);

expect(screen.getByTestId(`${FEATURE_PRIVILEGES_ALL}-privilege-button`)).toHaveAttribute(
'aria-pressed',
String(true)
await waitFor(() =>
expect(screen.getByTestId(`${FEATURE_PRIVILEGES_ALL}-privilege-button`)).toHaveAttribute(
'aria-pressed',
String(true)
)
);
});

Expand All @@ -256,7 +256,7 @@ describe('PrivilegesRolesForm', () => {
preSelectedRoles: roles,
});

await waitFor(() => null);
await waitFor(() => new Promise((resolve) => resolve(null)));

expect(screen.getByTestId(`${FEATURE_PRIVILEGES_READ}-privilege-button`)).toHaveAttribute(
'aria-pressed',
Expand Down Expand Up @@ -290,9 +290,9 @@ describe('PrivilegesRolesForm', () => {
preSelectedRoles: roles,
});

await waitFor(() => null);

expect(screen.getByTestId('privilege-conflict-callout')).toBeInTheDocument();
await waitFor(() =>
expect(screen.getByTestId('privilege-conflict-callout')).toBeInTheDocument()
);
});

it('does not display the permission conflict message when roles with the same privilege levels are selected', async () => {
Expand All @@ -312,9 +312,9 @@ describe('PrivilegesRolesForm', () => {
preSelectedRoles: roles,
});

await waitFor(() => null);

expect(screen.queryByTestId('privilege-conflict-callout')).not.toBeInTheDocument();
await waitFor(() =>
expect(screen.queryByTestId('privilege-conflict-callout')).not.toBeInTheDocument()
);
});
});

Expand Down Expand Up @@ -348,7 +348,7 @@ describe('PrivilegesRolesForm', () => {
preSelectedRoles: roles,
});

await waitFor(() => null);
await waitFor(() => new Promise((resolve) => resolve(null)));

await userEvent.click(screen.getByTestId('custom-privilege-button'));

Expand Down

0 comments on commit 7551f05

Please sign in to comment.