Skip to content

Commit 95702f9

Browse files
committed
chore: address code review
1 parent dad3299 commit 95702f9

File tree

3 files changed

+44
-11
lines changed

3 files changed

+44
-11
lines changed

static/app/views/dashboards/dashboard.spec.tsx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import {WidgetFixture} from 'sentry-fixture/widget';
66

77
import {initializeOrg} from 'sentry-test/initializeOrg';
88
import {render, screen, userEvent, waitFor} from 'sentry-test/reactTestingLibrary';
9+
import {resetMockDate, setMockDate} from 'sentry-test/utils';
910

1011
import PageFiltersStore from 'sentry/components/pageFilters/store';
1112
import MemberListStore from 'sentry/stores/memberListStore';
@@ -640,6 +641,13 @@ describe('Dashboards > Dashboard', () => {
640641
PageFiltersStore.onInitializeUrlState(
641642
getSavedFiltersAsPageFilters(thirtyDayReleaseDashboard)
642643
);
644+
// Use a date well past METRICS_BACKED_SESSIONS_START_DATE (2022-07-12) so
645+
// a 30d period doesn't trigger the "data only available from Jul 12" error.
646+
setMockDate(new Date('2024-01-15'));
647+
});
648+
649+
afterEach(() => {
650+
resetMockDate();
643651
});
644652

645653
it('ignores the URL interval and falls back to the period default', async () => {

static/app/views/dashboards/filtersBar.tsx

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import {Button} from '@sentry/scraps/button';
77
import {CompactSelect} from '@sentry/scraps/compactSelect';
88
import {Flex, Grid} from '@sentry/scraps/layout';
99
import {OverlayTrigger} from '@sentry/scraps/overlayTrigger';
10-
import {Tooltip} from '@sentry/scraps/tooltip';
1110

1211
import {DatePageFilter} from 'sentry/components/pageFilters/date/datePageFilter';
1312
import {EnvironmentPageFilter} from 'sentry/components/pageFilters/environment/environmentPageFilter';
@@ -328,20 +327,18 @@ export default function FiltersBar({
328327
)}
329328
<ToggleOnDemand />
330329
{hasIntervalSelection && (
331-
<Flex align="center" marginLeft="auto">
330+
<Flex marginLeft="auto">
332331
<CompactSelect
333332
value={interval}
334333
onChange={option => setInterval(option.value)}
335334
trigger={triggerProps => (
336-
<Tooltip title={t('Time interval used by chart visualizations (e.g., 5m)')}>
337-
<OverlayTrigger.Button
338-
{...triggerProps}
339-
icon={<IconClock />}
340-
priority="transparent"
341-
showChevron={false}
342-
size="xs"
343-
/>
344-
</Tooltip>
335+
<OverlayTrigger.Button
336+
{...triggerProps}
337+
icon={<IconClock />}
338+
priority="transparent"
339+
showChevron={false}
340+
size="xs"
341+
/>
345342
)}
346343
menuTitle={t('Interval')}
347344
options={intervalOptions}

static/app/views/dashboards/widgetCard/hooks/utils/releases.tsx

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import trimStart from 'lodash/trimStart';
22

3+
import {t} from 'sentry/locale';
34
import type {DateString, PageFilters} from 'sentry/types/core';
45
import type {Organization} from 'sentry/types/organization';
56
import {statsPeriodToDays} from 'sentry/utils/duration/statsPeriodToDays';
@@ -14,6 +15,8 @@ import {
1415
resolveDerivedStatusFields,
1516
} from 'sentry/views/dashboards/widgetCard/releaseWidgetQueries';
1617

18+
const METRICS_BACKED_SESSIONS_START_DATE = new Date('2022-07-12');
19+
1720
const RATE_FUNCTIONS = [
1821
'unhealthy_rate',
1922
'abnormal_rate',
@@ -69,6 +72,31 @@ export function getReleasesRequestData(
6972
const {environments, projects, datetime} = pageFilters;
7073
const {start, end, period} = datetime;
7174

75+
let showIncompleteDataAlert = false;
76+
77+
if (start) {
78+
let startDate: Date | undefined = undefined;
79+
if (typeof start === 'string') {
80+
startDate = new Date(start);
81+
} else {
82+
startDate = start;
83+
}
84+
showIncompleteDataAlert = startDate < METRICS_BACKED_SESSIONS_START_DATE;
85+
} else if (period) {
86+
const periodInDays = statsPeriodToDays(period);
87+
const current = new Date();
88+
const prior = new Date(new Date().setDate(current.getDate() - periodInDays));
89+
showIncompleteDataAlert = prior < METRICS_BACKED_SESSIONS_START_DATE;
90+
}
91+
92+
if (showIncompleteDataAlert) {
93+
throw new Error(
94+
t(
95+
'Releases data is only available from Jul 12. Please retry your query with a more recent date range.'
96+
)
97+
);
98+
}
99+
72100
// Only time we need to use sessions API is when session.status is requested
73101
// as a group by, or we are using a rate function.
74102
const useSessionAPI =

0 commit comments

Comments
 (0)