grafana/public/app/features/explore/ExploreQueryInspector.test.tsx
Ivana Huckova d28e7b6185
Explore: Fix timezone not changing for graph and table (#42430)
* Pass timezone to graph in Explore

* Fix timezone issues for table

* Fix type error

* Update public/app/features/explore/TableContainer.test.tsx

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Replace UTC with InternalTimeZones

* Update CEST to cest

Co-authored-by: Giordano Ricci <me@giordanoricci.com>
2021-12-02 12:07:23 +01:00

89 lines
2.4 KiB
TypeScript

import React, { ComponentProps } from 'react';
import { Observable } from 'rxjs';
import { render, screen, fireEvent } from '@testing-library/react';
import { TimeRange, LoadingState, InternalTimeZones } from '@grafana/data';
import { ExploreId } from 'app/types';
import { ExploreQueryInspector } from './ExploreQueryInspector';
type ExploreQueryInspectorProps = ComponentProps<typeof ExploreQueryInspector>;
jest.mock('../inspector/styles', () => ({
getPanelInspectorStyles: () => ({}),
}));
jest.mock('app/core/services/backend_srv', () => ({
backendSrv: {
getInspectorStream: () =>
new Observable((subscriber) => {
subscriber.next(response());
subscriber.next(response(true));
}) as any,
},
}));
jest.mock('app/core/services/context_srv', () => ({
contextSrv: {
user: { orgId: 1 },
},
}));
const setup = (propOverrides = {}) => {
const props: ExploreQueryInspectorProps = {
loading: false,
width: 100,
exploreId: ExploreId.left,
onClose: jest.fn(),
timeZone: InternalTimeZones.utc,
queryResponse: {
state: LoadingState.Done,
series: [],
timeRange: {} as TimeRange,
},
runQueries: jest.fn(),
...propOverrides,
};
return render(<ExploreQueryInspector {...props} />);
};
describe('ExploreQueryInspector', () => {
it('should render closable drawer component', () => {
setup();
expect(screen.getByTitle(/close query inspector/i)).toBeInTheDocument();
});
it('should render 4 Tabs if queryResponse has no error', () => {
setup();
expect(screen.getAllByLabelText(/tab/i)).toHaveLength(4);
});
it('should render 5 Tabs if queryResponse has error', () => {
setup({ queryResponse: { error: 'Bad gateway' } });
expect(screen.getAllByLabelText(/tab/i)).toHaveLength(5);
});
it('should display query data when click on expanding', () => {
setup();
fireEvent.click(screen.getByLabelText(/tab query/i));
fireEvent.click(screen.getByText(/expand all/i));
expect(screen.getByText(/very unique test value/i)).toBeInTheDocument();
});
});
const response = (hideFromInspector = false) => ({
status: 1,
statusText: '',
ok: true,
headers: {} as any,
redirected: false,
type: 'basic',
url: '',
request: {} as any,
data: {
test: {
testKey: 'Very unique test value',
},
},
config: {
url: '',
hideFromInspector,
},
});