/*
* SPDX-License-Identifier: Apache-2.0
*
* The OpenSearch Contributors require contributions made to
* this file be licensed under the Apache-2.0 license or a
* compatible open source license.
*
* Modifications Copyright OpenSearch Contributors. See
* GitHub history for details.
*/
import React from 'react';
import { Provider } from 'react-redux';
import {
HashRouter as Router,
RouteComponentProps,
Route,
Switch,
} from 'react-router-dom';
import { render, fireEvent, waitFor } from '@testing-library/react';
import { ConfigureModel } from '../ConfigureModel';
import configureStore from '../../../../redux/configureStore';
import { httpClientMock, coreServicesMock } from '../../../../../test/mocks';
import { CoreServicesContext } from '../../../../components/CoreServices/CoreServices';
import { INITIAL_DETECTOR_DEFINITION_VALUES } from '../../../DefineDetector/utils/constants';
import { INITIAL_MODEL_CONFIGURATION_VALUES } from '../../utils/constants';
const renderWithRouter = (isEdit: boolean = false) => ({
...render(
(
)}
/>
),
});
describe(' spec', () => {
beforeEach(() => {
jest.clearAllMocks();
console.error = jest.fn();
console.warn = jest.fn();
});
describe('creating model configuration', () => {
test('renders the component', () => {
const { container, getByText } = renderWithRouter(false);
expect(container.firstChild).toMatchSnapshot();
getByText('Configure model');
});
test('validate all required fields', async () => {
const { getByText } = renderWithRouter();
fireEvent.click(getByText('Next'));
await waitFor(() => {});
getByText('You must enter a feature name');
getByText('You must select a field');
});
});
describe('editing model configuration', () => {
test('renders the component', () => {
const { container, getByText } = renderWithRouter(true);
expect(container.firstChild).toMatchSnapshot();
getByText('Edit model configuration');
getByText('Save changes');
});
});
});