diff --git a/public/app/features/dashboard-scene/scene/PanelTimeRange.test.tsx b/public/app/features/dashboard-scene/scene/PanelTimeRange.test.tsx index 7d8f9b4baa5..a4b7cdd944c 100644 --- a/public/app/features/dashboard-scene/scene/PanelTimeRange.test.tsx +++ b/public/app/features/dashboard-scene/scene/PanelTimeRange.test.tsx @@ -111,6 +111,31 @@ describe('PanelTimeRange', () => { expect(panelTime.state.value.from.format('Z')).toBe('+00:00'); // UTC expect(panelTime.state.value.to.format('Z')).toBe('+00:00'); // UTC }); + + it('should handle invalid time reference in timeShift', () => { + const panelTime = new PanelTimeRange({ timeShift: 'now-1d' }); + + buildAndActivateSceneFor(panelTime); + + expect(panelTime.state.timeInfo).toBe('invalid timeshift'); + // Should not be affected by invalid timeShift + expect(panelTime.state.from).toBe('now-6h'); + expect(panelTime.state.to).toBe('now'); + }); + + it('should handle invalid time reference in timeShift combined with timeFrom', () => { + const panelTime = new PanelTimeRange({ + timeFrom: 'now-2h', + timeShift: 'now-1d', + }); + + buildAndActivateSceneFor(panelTime); + + expect(panelTime.state.timeInfo).toBe('invalid timeshift'); + // Should not be affected by invalid timeShift + expect(panelTime.state.from).toBe('now-2h'); + expect(panelTime.state.to).toBe('now'); + }); }); function buildAndActivateSceneFor(panelTime: PanelTimeRange) { diff --git a/public/app/features/dashboard-scene/scene/PanelTimeRange.tsx b/public/app/features/dashboard-scene/scene/PanelTimeRange.tsx index 61bcfe3b353..6c5fac6d443 100644 --- a/public/app/features/dashboard-scene/scene/PanelTimeRange.tsx +++ b/public/app/features/dashboard-scene/scene/PanelTimeRange.tsx @@ -105,6 +105,11 @@ export class PanelTimeRange extends SceneTimeRangeTransformerBase