mirror of
https://github.com/grafana/grafana.git
synced 2025-02-12 00:25:46 -06:00
* 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>
89 lines
2.4 KiB
TypeScript
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,
|
|
},
|
|
});
|