Skip to content

Commit

Permalink
Add shared function for button query
Browse files Browse the repository at this point in the history
  • Loading branch information
Jondyr committed Sep 9, 2024
1 parent feaee36 commit d28ffbd
Showing 1 changed file with 19 additions and 29 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import React from 'react';
import { screen } from '@testing-library/react';
import type { Screen } from '@testing-library/react';

Check failure on line 3 in frontend/app-development/features/dataModelling/SchemaEditorWithToolbar/TopToolbar/CreateNewWrapper.test.tsx

View workflow job for this annotation

GitHub Actions / Typechecking and linting

'Screen' is declared but its value is never read.
import userEvent, { PointerEventsCheckLevel } from '@testing-library/user-event';
import type { CreateNewWrapperProps } from './CreateNewWrapper';
import { CreateNewWrapper } from './CreateNewWrapper';
Expand Down Expand Up @@ -52,11 +53,7 @@ describe('CreateNewWrapper', () => {
const user = userEvent.setup();
render({ createNewOpen: true });
expect(screen.getByRole('textbox')).toBeInTheDocument();
expect(
screen.getByRole('button', {
name: textMock('schema_editor.create_model_confirm_button'),
}),
).toBeInTheDocument();
expect(okButton()).toBeInTheDocument();

const newButton = screen.getByRole('button', {
name: textMock('general.create_new'),
Expand All @@ -73,11 +70,8 @@ describe('CreateNewWrapper', () => {
render({ createNewOpen: true });

const textInput = screen.getByRole('textbox');
const okButton = screen.getByRole('button', {
name: textMock('schema_editor.create_model_confirm_button'),
});
await user.type(textInput, 'new-model');
await user.click(okButton);
await user.click(okButton());
expect(handleCreateSchema).toHaveBeenCalledWith({
name: 'new-model',
relativePath: undefined,
Expand All @@ -103,11 +97,8 @@ describe('CreateNewWrapper', () => {
render({ createNewOpen: true, createPathOption: true });

const textInput = screen.getByRole('textbox');
const okButton = screen.getByRole('button', {
name: textMock('schema_editor.create_model_confirm_button'),
});
await user.type(textInput, 'new-model');
await user.click(okButton);
await user.click(okButton());
expect(handleCreateSchema).toHaveBeenCalledWith({
name: 'new-model',
relativePath: '',
Expand All @@ -121,14 +112,11 @@ describe('CreateNewWrapper', () => {
render({ createNewOpen: true, dataModels: [jsonMetadata1Mock] });

const textInput = screen.getByRole('textbox');
const okButton = screen.getByRole('button', {
name: textMock('schema_editor.create_model_confirm_button'),
});

expect(screen.queryByText(errMessage)).not.toBeInTheDocument();
await user.type(textInput, newModelName);

expect(okButton).toBeDisabled();
expect(okButton()).toBeDisabled();
expect(handleCreateSchema).not.toHaveBeenCalled();
expect(screen.getByText(errMessage)).toBeInTheDocument();
});
Expand All @@ -139,37 +127,39 @@ describe('CreateNewWrapper', () => {
});
render({ createNewOpen: true, dataModels: [jsonMetadata1Mock] });

const okButton = screen.getByRole('button', {
name: textMock('schema_editor.create_model_confirm_button'),
});

await userWithNoPointerEventCheck.click(okButton);
await userWithNoPointerEventCheck.click(okButton());

expect(handleCreateSchema).not.toHaveBeenCalled();
});

it('should not allow a name already in use in applicationmetadata json file', async () => {
const user = userEvent.setup();

const dataTypeName = 'testmodel';
const queryClient = createQueryClientMock();
queryClient.setQueryData([QueryKey.AppMetadata, org, app], {
dataTypes: [{ id: 'testmodel' }],
dataTypes: [{ id: dataTypeName }],
});
render({ createNewOpen: true, dataModels: [jsonMetadata1Mock] }, queryClient);

const okButton = screen.getByRole('button', {
name: textMock('schema_editor.create_model_confirm_button'),
});
await user.type(screen.getByRole('textbox'), 'testmodel');
await user.type(screen.getByRole('textbox'), dataTypeName);
expect(
screen.getByText(
textMock('schema_editor.error_model_name_exists', { newModelName: 'testmodel' }),
textMock('schema_editor.error_model_name_exists', { newModelName: dataTypeName }),
),
).toBeInTheDocument();
expect(okButton).toBeDisabled();

expect(okButton()).toBeDisabled();
});
});
});

const okButton = () => {
return screen.getByRole('button', {
name: textMock('schema_editor.create_model_confirm_button'),
});
};

const render = (
props: Partial<CreateNewWrapperProps> = {},
queryClient = createQueryClientMock(),
Expand Down

0 comments on commit d28ffbd

Please sign in to comment.