import React from 'react';
import Schemas from 'components/Schemas/Schemas';
import { render } from 'lib/testHelpers';
import {
clusterPath,
clusterSchemaEditPath,
clusterSchemaNewPath,
clusterSchemaPath,
clusterSchemasPath,
} from 'lib/paths';
import { screen, waitFor } from '@testing-library/dom';
import { Route } from 'react-router-dom';
import fetchMock from 'fetch-mock';
import { schemaVersion } from 'redux/reducers/schemas/__test__/fixtures';
const renderComponent = (pathname: string) =>
render(
,
{ pathname }
);
const clusterName = 'secondLocal';
jest.mock('components/Schemas/List/List', () => () =>
List
);
jest.mock('components/Schemas/Details/Details', () => () => Details
);
jest.mock('components/Schemas/New/New', () => () => New
);
jest.mock('components/Schemas/Edit/Edit', () => () => Edit
);
describe('Schemas', () => {
beforeEach(() => {
fetchMock.getOnce(`/api/clusters/${clusterName}/schemas`, [schemaVersion]);
});
afterEach(() => fetchMock.restore());
it('renders List', async () => {
renderComponent(clusterSchemasPath(clusterName));
await waitFor(() => expect(screen.queryByText('List')).toBeInTheDocument());
});
it('renders New', async () => {
renderComponent(clusterSchemaNewPath(clusterName));
await waitFor(() => expect(screen.queryByText('New')).toBeInTheDocument());
});
it('renders Details', async () => {
renderComponent(clusterSchemaPath(clusterName, schemaVersion.subject));
await waitFor(() =>
expect(screen.queryByText('Details')).toBeInTheDocument()
);
});
it('renders Edit', async () => {
renderComponent(clusterSchemaEditPath(clusterName, schemaVersion.subject));
await waitFor(() => expect(screen.queryByText('Edit')).toBeInTheDocument());
});
});