Skip to content

Commit c518673

Browse files
authored
ref(metrics): Move equation and query symbol to components (#72192)
Move `EquationSymbol` and `QuerySymbol` to `components/metrics` folder. Add tests.
1 parent e696b21 commit c518673

File tree

12 files changed

+68
-27
lines changed

12 files changed

+68
-27
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import {render, screen} from 'sentry-test/reactTestingLibrary';
2+
import {textWithMarkupMatcher} from 'sentry-test/utils';
3+
4+
import {
5+
EquationSymbol,
6+
getEquationSymbol,
7+
} from 'sentry/components/metrics/equationSymbol';
8+
9+
describe('getEquationSymbol', () => {
10+
it('should return the correct symbol', () => {
11+
expect(getEquationSymbol(0)).toBe('ƒ1');
12+
expect(getEquationSymbol(1)).toBe('ƒ2');
13+
});
14+
});
15+
16+
describe('EquationSymbol', () => {
17+
it('renders', () => {
18+
render(<EquationSymbol equationId={0} />);
19+
expect(screen.getByText(textWithMarkupMatcher('ƒ1'))).toBeInTheDocument();
20+
21+
render(<EquationSymbol equationId={5} />);
22+
expect(screen.getByText(textWithMarkupMatcher('ƒ6'))).toBeInTheDocument();
23+
});
24+
});
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import {render, screen} from 'sentry-test/reactTestingLibrary';
2+
3+
import {getQuerySymbol, QuerySymbol} from 'sentry/components/metrics/querySymbol';
4+
5+
describe('getQuerySymbol', () => {
6+
it('should return the correct symbol', () => {
7+
expect(getQuerySymbol(0)).toBe('a');
8+
expect(getQuerySymbol(1)).toBe('b');
9+
expect(getQuerySymbol(25)).toBe('z');
10+
expect(getQuerySymbol(26)).toBe('aa');
11+
expect(getQuerySymbol(27)).toBe('ab');
12+
expect(getQuerySymbol(52)).toBe('ba');
13+
expect(getQuerySymbol(53)).toBe('bb');
14+
expect(getQuerySymbol(77)).toBe('bz');
15+
expect(getQuerySymbol(78)).toBe('ca');
16+
expect(getQuerySymbol(702)).toBe('aaa');
17+
});
18+
});
19+
20+
describe('QuerySymbol', () => {
21+
it('renders', () => {
22+
render(<QuerySymbol queryId={0} />);
23+
expect(screen.getByText('a')).toBeInTheDocument();
24+
25+
render(<QuerySymbol queryId={27} />);
26+
expect(screen.getByText('ab')).toBeInTheDocument();
27+
});
28+
29+
it('does not render for negative query ids', () => {
30+
const {container} = render(<QuerySymbol queryId={-1} />);
31+
expect(container).toBeEmptyDOMElement();
32+
});
33+
});

static/app/components/modals/metricWidgetViewerModal/queries.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ import type {MenuItemProps} from 'sentry/components/dropdownMenu';
88
import {DropdownMenu} from 'sentry/components/dropdownMenu';
99
import Input, {type InputProps} from 'sentry/components/input';
1010
import {CreateMetricAlertFeature} from 'sentry/components/metrics/createMetricAlertFeature';
11+
import {EquationSymbol} from 'sentry/components/metrics/equationSymbol';
1112
import {QueryBuilder} from 'sentry/components/metrics/queryBuilder';
13+
import {getQuerySymbol, QuerySymbol} from 'sentry/components/metrics/querySymbol';
1214
import {Tooltip} from 'sentry/components/tooltip';
1315
import {DEFAULT_DEBOUNCE_DURATION, SLOW_TOOLTIP_DELAY} from 'sentry/constants';
1416
import {
@@ -36,10 +38,8 @@ import type {
3638
} from 'sentry/views/dashboards/metrics/types';
3739
import {getMetricQueryName} from 'sentry/views/dashboards/metrics/utils';
3840
import {DisplayType} from 'sentry/views/dashboards/types';
39-
import {EquationSymbol} from 'sentry/views/metrics/equationSymbol';
4041
import {EquationInput} from 'sentry/views/metrics/formulaInput';
4142
import {getCreateAlert} from 'sentry/views/metrics/metricQueryContextMenu';
42-
import {getQuerySymbol, QuerySymbol} from 'sentry/views/metrics/querySymbol';
4343

4444
interface Props {
4545
addEquation: () => void;

static/app/utils/metrics/dashboardImport.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import {Client} from 'sentry/api';
2+
import {getQuerySymbol} from 'sentry/components/metrics/querySymbol';
23
import type {MetricMeta, MRI} from 'sentry/types/metrics';
34
import {convertToDashboardWidget} from 'sentry/utils/metrics/dashboard';
45
import type {MetricsQuery} from 'sentry/utils/metrics/types';
56
import {MetricDisplayType} from 'sentry/utils/metrics/types';
67
import type {Widget} from 'sentry/views/dashboards/types';
7-
import {getQuerySymbol} from 'sentry/views/metrics/querySymbol';
88
// import types
99
export type ImportDashboard = {
1010
description: string;

static/app/views/dashboards/metrics/utils.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import {useMemo} from 'react';
22

3+
import {getEquationSymbol} from 'sentry/components/metrics/equationSymbol';
4+
import {getQuerySymbol} from 'sentry/components/metrics/querySymbol';
35
import type {MRI} from 'sentry/types/metrics';
46
import {unescapeMetricsFormula} from 'sentry/utils/metrics';
57
import {NO_QUERY_ID} from 'sentry/utils/metrics/constants';
@@ -18,8 +20,6 @@ import {
1820
type WidgetQuery,
1921
WidgetType,
2022
} from 'sentry/views/dashboards/types';
21-
import {getEquationSymbol} from 'sentry/views/metrics/equationSymbol';
22-
import {getQuerySymbol} from 'sentry/views/metrics/querySymbol';
2323
import {getUniqueQueryIdGenerator} from 'sentry/views/metrics/utils/uniqueQueryId';
2424

2525
function extendQuery(query = '', dashboardFilters?: DashboardFilters) {

static/app/views/metrics/pageHeaderActions.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {Button} from 'sentry/components/button';
88
import ButtonBar from 'sentry/components/buttonBar';
99
import {DropdownMenu} from 'sentry/components/dropdownMenu';
1010
import {CreateMetricAlertFeature} from 'sentry/components/metrics/createMetricAlertFeature';
11+
import {QuerySymbol} from 'sentry/components/metrics/querySymbol';
1112
import {
1213
IconBookmark,
1314
IconDashboard,
@@ -25,7 +26,6 @@ import useOrganization from 'sentry/utils/useOrganization';
2526
import useRouter from 'sentry/utils/useRouter';
2627
import {useMetricsContext} from 'sentry/views/metrics/context';
2728
import {getCreateAlert} from 'sentry/views/metrics/metricQueryContextMenu';
28-
import {QuerySymbol} from 'sentry/views/metrics/querySymbol';
2929
import {useCreateDashboard} from 'sentry/views/metrics/useCreateDashboard';
3030
import {useFormulaDependencies} from 'sentry/views/metrics/utils/useFormulaDependencies';
3131

static/app/views/metrics/queries.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@ import * as echarts from 'echarts/core';
44

55
import GuideAnchor from 'sentry/components/assistant/guideAnchor';
66
import {Button} from 'sentry/components/button';
7+
import {EquationSymbol} from 'sentry/components/metrics/equationSymbol';
78
import {QueryBuilder} from 'sentry/components/metrics/queryBuilder';
9+
import {getQuerySymbol, QuerySymbol} from 'sentry/components/metrics/querySymbol';
810
import SwitchButton from 'sentry/components/switchButton';
911
import {Tooltip} from 'sentry/components/tooltip';
1012
import {IconAdd} from 'sentry/icons';
@@ -23,11 +25,9 @@ import useOrganization from 'sentry/utils/useOrganization';
2325
import usePageFilters from 'sentry/utils/usePageFilters';
2426
import {METRIC_CHART_GROUP} from 'sentry/views/metrics/constants';
2527
import {useMetricsContext} from 'sentry/views/metrics/context';
26-
import {EquationSymbol} from 'sentry/views/metrics/equationSymbol';
2728
import {EquationInput} from 'sentry/views/metrics/formulaInput';
2829
import {MetricFormulaContextMenu} from 'sentry/views/metrics/metricFormulaContextMenu';
2930
import {MetricQueryContextMenu} from 'sentry/views/metrics/metricQueryContextMenu';
30-
import {getQuerySymbol, QuerySymbol} from 'sentry/views/metrics/querySymbol';
3131
import {useFormulaDependencies} from 'sentry/views/metrics/utils/useFormulaDependencies';
3232

3333
export function Queries() {

static/app/views/metrics/querySymbol.spec.tsx

Lines changed: 0 additions & 16 deletions
This file was deleted.

0 commit comments

Comments
 (0)