Explore: Add tracing switch (#25539)
* Add tracing switch to explore * Prettify
This commit is contained in:
@@ -0,0 +1,68 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import { shallow, ShallowWrapper } from 'enzyme';
|
||||||
|
import { UnConnectedExploreToolbar } from './ExploreToolbar';
|
||||||
|
import { ExploreMode } from '@grafana/data';
|
||||||
|
import { ExploreId } from '../../types';
|
||||||
|
import { ToggleButtonGroup } from '@grafana/ui';
|
||||||
|
|
||||||
|
jest.mock('./state/selectors', () => {
|
||||||
|
return {
|
||||||
|
__esModule: true,
|
||||||
|
getExploreDatasources: () => [] as any,
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('ExploreToolbar', () => {
|
||||||
|
it('displays correct modes', () => {
|
||||||
|
let wrapper = shallow(createToolbar([ExploreMode.Tracing, ExploreMode.Logs]));
|
||||||
|
checkModes(wrapper, ['Logs', 'Tracing']);
|
||||||
|
|
||||||
|
wrapper = shallow(createToolbar([ExploreMode.Logs]));
|
||||||
|
checkModes(wrapper, []);
|
||||||
|
|
||||||
|
wrapper = shallow(createToolbar([ExploreMode.Logs, ExploreMode.Tracing, ExploreMode.Metrics]));
|
||||||
|
checkModes(wrapper, ['Metrics', 'Logs', 'Tracing']);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
function checkModes(wrapper: ShallowWrapper, modes: string[]) {
|
||||||
|
expect(
|
||||||
|
wrapper
|
||||||
|
.find(ToggleButtonGroup)
|
||||||
|
.children()
|
||||||
|
.map(node => node.children().text())
|
||||||
|
).toEqual(modes);
|
||||||
|
}
|
||||||
|
|
||||||
|
function createToolbar(supportedModes: ExploreMode[]) {
|
||||||
|
return (
|
||||||
|
<UnConnectedExploreToolbar
|
||||||
|
datasourceMissing={false}
|
||||||
|
loading={false}
|
||||||
|
range={{} as any}
|
||||||
|
timeZone={'UTC'}
|
||||||
|
splitted={false}
|
||||||
|
syncedTimes={false}
|
||||||
|
supportedModes={supportedModes}
|
||||||
|
selectedMode={ExploreMode.Tracing}
|
||||||
|
hasLiveOption={false}
|
||||||
|
isLive={false}
|
||||||
|
isPaused={false}
|
||||||
|
queries={[]}
|
||||||
|
containerWidth={0}
|
||||||
|
changeDatasource={(() => {}) as any}
|
||||||
|
clearAll={(() => {}) as any}
|
||||||
|
cancelQueries={(() => {}) as any}
|
||||||
|
runQueries={(() => {}) as any}
|
||||||
|
closeSplit={(() => {}) as any}
|
||||||
|
split={(() => {}) as any}
|
||||||
|
syncTimes={(() => {}) as any}
|
||||||
|
changeRefreshInterval={(() => {}) as any}
|
||||||
|
changeMode={(() => {}) as any}
|
||||||
|
updateLocation={(() => {}) as any}
|
||||||
|
setDashboardQueriesToUpdateOnLoad={(() => {}) as any}
|
||||||
|
exploreId={ExploreId.left}
|
||||||
|
onChangeTime={(() => {}) as any}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -6,21 +6,20 @@ import classNames from 'classnames';
|
|||||||
import { css } from 'emotion';
|
import { css } from 'emotion';
|
||||||
|
|
||||||
import { ExploreId, ExploreItemState } from 'app/types/explore';
|
import { ExploreId, ExploreItemState } from 'app/types/explore';
|
||||||
import { ToggleButtonGroup, ToggleButton, Tooltip, LegacyForms, SetInterval, Icon, IconButton } from '@grafana/ui';
|
import { Icon, IconButton, LegacyForms, SetInterval, ToggleButton, ToggleButtonGroup, Tooltip } from '@grafana/ui';
|
||||||
const { ButtonSelect } = LegacyForms;
|
import { DataQuery, ExploreMode, RawTimeRange, TimeRange, TimeZone } from '@grafana/data';
|
||||||
import { RawTimeRange, TimeZone, TimeRange, DataQuery, ExploreMode } from '@grafana/data';
|
|
||||||
import { DataSourcePicker } from 'app/core/components/Select/DataSourcePicker';
|
import { DataSourcePicker } from 'app/core/components/Select/DataSourcePicker';
|
||||||
import { StoreState } from 'app/types/store';
|
import { StoreState } from 'app/types/store';
|
||||||
import {
|
import {
|
||||||
changeDatasource,
|
|
||||||
cancelQueries,
|
cancelQueries,
|
||||||
|
changeDatasource,
|
||||||
|
changeMode,
|
||||||
|
changeRefreshInterval,
|
||||||
clearQueries,
|
clearQueries,
|
||||||
splitClose,
|
|
||||||
runQueries,
|
runQueries,
|
||||||
|
splitClose,
|
||||||
splitOpen,
|
splitOpen,
|
||||||
syncTimes,
|
syncTimes,
|
||||||
changeRefreshInterval,
|
|
||||||
changeMode,
|
|
||||||
} from './state/actions';
|
} from './state/actions';
|
||||||
import { updateLocation } from 'app/core/actions';
|
import { updateLocation } from 'app/core/actions';
|
||||||
import { getTimeZone } from '../profile/state/selectors';
|
import { getTimeZone } from '../profile/state/selectors';
|
||||||
@@ -34,6 +33,8 @@ import { LiveTailControls } from './useLiveTailControls';
|
|||||||
import { getExploreDatasources } from './state/selectors';
|
import { getExploreDatasources } from './state/selectors';
|
||||||
import { setDashboardQueriesToUpdateOnLoad } from '../dashboard/state/reducers';
|
import { setDashboardQueriesToUpdateOnLoad } from '../dashboard/state/reducers';
|
||||||
|
|
||||||
|
const { ButtonSelect } = LegacyForms;
|
||||||
|
|
||||||
const getStyles = memoizeOne(() => {
|
const getStyles = memoizeOne(() => {
|
||||||
return {
|
return {
|
||||||
liveTailButtons: css`
|
liveTailButtons: css`
|
||||||
@@ -238,22 +239,20 @@ export class UnConnectedExploreToolbar extends PureComponent<Props> {
|
|||||||
{showModeToggle ? (
|
{showModeToggle ? (
|
||||||
<div className="query-type-toggle">
|
<div className="query-type-toggle">
|
||||||
<ToggleButtonGroup label="" transparent={true}>
|
<ToggleButtonGroup label="" transparent={true}>
|
||||||
<ToggleButton
|
{[ExploreMode.Metrics, ExploreMode.Logs, ExploreMode.Tracing]
|
||||||
key={ExploreMode.Metrics}
|
.filter(mode => supportedModes.includes(mode))
|
||||||
value={ExploreMode.Metrics}
|
.map(mode => {
|
||||||
onChange={this.onModeChange}
|
return (
|
||||||
selected={selectedMode === ExploreMode.Metrics}
|
<ToggleButton
|
||||||
>
|
key={mode}
|
||||||
{'Metrics'}
|
value={mode}
|
||||||
</ToggleButton>
|
onChange={this.onModeChange}
|
||||||
<ToggleButton
|
selected={selectedMode === mode}
|
||||||
key={ExploreMode.Logs}
|
>
|
||||||
value={ExploreMode.Logs}
|
{mode}
|
||||||
onChange={this.onModeChange}
|
</ToggleButton>
|
||||||
selected={selectedMode === ExploreMode.Logs}
|
);
|
||||||
>
|
})}
|
||||||
{'Logs'}
|
|
||||||
</ToggleButton>
|
|
||||||
</ToggleButtonGroup>
|
</ToggleButtonGroup>
|
||||||
</div>
|
</div>
|
||||||
) : null}
|
) : null}
|
||||||
|
|||||||
Reference in New Issue
Block a user