/*
* Copyright OpenSearch Contributors
* SPDX-License-Identifier: Apache-2.0
*/
import { configure, mount } from 'enzyme';
import { useDispatch, Provider } from 'react-redux';
import { configureStore } from '@reduxjs/toolkit';
import Adapter from 'enzyme-adapter-react-16';
import React from 'react';
import { waitFor } from '@testing-library/react';
import { Sidebar } from '../sidebar';
import {
SELECTED_FIELDS,
AVAILABLE_FIELDS,
UNSELECTED_FIELDS,
QUERIED_FIELDS,
} from '../../../../../../common/constants/explorer';
import {
AVAILABLE_FIELDS as SIDEBAR_AVAILABLE_FIELDS,
QUERY_FIELDS,
JSON_DATA,
JSON_DATA_ALL,
} from '../../../../../../test/event_analytics_constants';
jest.mock('react-redux', () => ({
...jest.requireActual('react-redux'),
useDispatch: jest.fn(),
}));
describe('Siderbar component', () => {
configure({ adapter: new Adapter() });
const store = configureStore({
reducer: jest.fn(),
});
beforeEach(() => {
useDispatch.mockClear();
useDispatch.mockReturnValue(jest.fn());
});
it('Renders empty sidebar component', async () => {
const explorerFields = {
[SELECTED_FIELDS]: [],
[AVAILABLE_FIELDS]: [],
[UNSELECTED_FIELDS]: [],
[QUERIED_FIELDS]: [],
};
const handleOverrideTimestamp = jest.fn();
const selectedTimestamp = 'timestamp';
const explorerData = {};
const wrapper = mount(
);
wrapper.update();
await waitFor(() => {
expect(wrapper).toMatchSnapshot();
});
});
it('Renders sidebar component', async () => {
const explorerFields = {
[SELECTED_FIELDS]: [],
[UNSELECTED_FIELDS]: [],
[AVAILABLE_FIELDS]: SIDEBAR_AVAILABLE_FIELDS,
[QUERIED_FIELDS]: QUERY_FIELDS,
};
const handleOverrideTimestamp = jest.fn();
const selectedTimestamp = 'timestamp';
const explorerData = {
jsonData: JSON_DATA,
jsonDataAll: JSON_DATA_ALL,
};
const wrapper = mount(
);
await waitFor(() => {
expect(wrapper).toMatchSnapshot();
});
});
});