|
@@ -2,9 +2,12 @@ import React from 'react';
|
|
|
import New from 'components/Schemas/New/New';
|
|
|
import { render, WithRoute } from 'lib/testHelpers';
|
|
|
import { clusterSchemaNewPath } from 'lib/paths';
|
|
|
-import { screen } from '@testing-library/dom';
|
|
|
+import { act, screen } from '@testing-library/react';
|
|
|
+import userEvent from '@testing-library/user-event';
|
|
|
|
|
|
const clusterName = 'local';
|
|
|
+const subjectValue = 'subject';
|
|
|
+const schemaValue = 'schema';
|
|
|
|
|
|
describe('New Component', () => {
|
|
|
beforeEach(() => {
|
|
@@ -21,4 +24,26 @@ describe('New Component', () => {
|
|
|
it('renders component', () => {
|
|
|
expect(screen.getByText('Create new schema')).toBeInTheDocument();
|
|
|
});
|
|
|
+ it('submit button will be disabled while form fields are not filled', () => {
|
|
|
+ const submitBtn = screen.getByRole('button', { name: /submit/i });
|
|
|
+ expect(submitBtn).toBeDisabled();
|
|
|
+ });
|
|
|
+ it('submit button will be enabled when form fields are filled', async () => {
|
|
|
+ const subject = screen.getByPlaceholderText('Schema Name');
|
|
|
+ const schema = screen.getAllByRole('textbox')[1];
|
|
|
+ const schemaTypeSelect = screen.getByRole('listbox');
|
|
|
+
|
|
|
+ await act(() => {
|
|
|
+ userEvent.type(subject, subjectValue);
|
|
|
+ });
|
|
|
+ await act(() => {
|
|
|
+ userEvent.type(schema, schemaValue);
|
|
|
+ });
|
|
|
+ await act(() => {
|
|
|
+ userEvent.selectOptions(schemaTypeSelect, ['AVRO']);
|
|
|
+ });
|
|
|
+
|
|
|
+ const submitBtn = screen.getByRole('button', { name: /Submit/i });
|
|
|
+ expect(submitBtn).toBeEnabled();
|
|
|
+ });
|
|
|
});
|