diff --git a/.betterer.results b/.betterer.results index 0451b551542..b9583524e94 100644 --- a/.betterer.results +++ b/.betterer.results @@ -4532,8 +4532,7 @@ exports[`better eslint`] = { [0, 0, 0, "Unexpected any. Specify a different type.", "2"], [0, 0, 0, "Unexpected any. Specify a different type.", "3"], [0, 0, 0, "Unexpected any. Specify a different type.", "4"], - [0, 0, 0, "Unexpected any. Specify a different type.", "5"], - [0, 0, 0, "Unexpected any. Specify a different type.", "6"] + [0, 0, 0, "Unexpected any. Specify a different type.", "5"] ], "public/app/features/dashboard/state/DashboardMigrator.test.ts:5381": [ [0, 0, 0, "Unexpected any. Specify a different type.", "0"], diff --git a/public/app/features/dashboard/services/TimeSrv.test.ts b/public/app/features/dashboard/services/TimeSrv.test.ts index c508b100c60..c9d4b6b341e 100644 --- a/public/app/features/dashboard/services/TimeSrv.test.ts +++ b/public/app/features/dashboard/services/TimeSrv.test.ts @@ -253,24 +253,18 @@ describe('timeSrv', () => { }); describe('pauseAutoRefresh', () => { - it('should set refresh to empty value', () => { + it('should set autoRefreshPaused to true', () => { _dashboard.refresh = '10s'; timeSrv.pauseAutoRefresh(); - expect(_dashboard.refresh).toBe(''); - }); - - it('should set previousAutoRefresh value', () => { - _dashboard.refresh = '10s'; - timeSrv.pauseAutoRefresh(); - expect(timeSrv.previousAutoRefresh).toBe('10s'); + expect(timeSrv.autoRefreshPaused).toBe(true); }); }); describe('resumeAutoRefresh', () => { it('should set refresh to empty value', () => { - timeSrv.previousAutoRefresh = '10s'; + timeSrv.autoRefreshPaused = true; timeSrv.resumeAutoRefresh(); - expect(_dashboard.refresh).toBe('10s'); + expect(timeSrv.autoRefreshPaused).toBe(false); }); }); diff --git a/public/app/features/dashboard/services/TimeSrv.ts b/public/app/features/dashboard/services/TimeSrv.ts index cf3b7e7f6e1..e9792b20e9e 100644 --- a/public/app/features/dashboard/services/TimeSrv.ts +++ b/public/app/features/dashboard/services/TimeSrv.ts @@ -24,7 +24,7 @@ export class TimeSrv { time: any; refreshTimer: any; refresh: any; - previousAutoRefresh: any; + autoRefreshPaused = false; oldRefresh: string | null | undefined; timeModel?: TimeModel; timeAtLoad: any; @@ -232,7 +232,7 @@ export class TimeSrv { this.refreshTimer = setTimeout(() => { this.startNextRefreshTimer(intervalMs); - this.refreshTimeModel(); + !this.autoRefreshPaused && this.refreshTimeModel(); }, intervalMs); const refresh = this.contextSrv.getValidInterval(interval); @@ -250,7 +250,7 @@ export class TimeSrv { this.refreshTimer = setTimeout(() => { this.startNextRefreshTimer(afterMs); if (this.contextSrv.isGrafanaVisible()) { - this.refreshTimeModel(); + !this.autoRefreshPaused && this.refreshTimeModel(); } else { this.autoRefreshBlocked = true; } @@ -264,13 +264,13 @@ export class TimeSrv { // store timeModel refresh value and pause auto-refresh in some places // i.e panel edit pauseAutoRefresh() { - this.previousAutoRefresh = this.timeModel?.refresh; - this.setAutoRefresh(''); + this.autoRefreshPaused = true; } // resume auto-refresh based on old dashboard refresh property resumeAutoRefresh() { - this.setAutoRefresh(this.previousAutoRefresh); + this.autoRefreshPaused = false; + this.refreshTimeModel(); } setTime(time: RawTimeRange, updateUrl = true) { diff --git a/public/app/features/dashboard/state/DashboardModel.test.ts b/public/app/features/dashboard/state/DashboardModel.test.ts index da4e8165a8e..77e0c59af21 100644 --- a/public/app/features/dashboard/state/DashboardModel.test.ts +++ b/public/app/features/dashboard/state/DashboardModel.test.ts @@ -976,7 +976,7 @@ describe('exitViewPanel', () => { }); describe('exitPanelEditor', () => { - function getTestContext(setPreviousAutoRefresh = false) { + function getTestContext(pauseAutoRefresh = false) { const panel: any = { destroy: jest.fn() }; const dashboard = new DashboardModel({}); const timeSrvMock = { @@ -986,8 +986,8 @@ describe('exitPanelEditor', () => { } as unknown as TimeSrv; dashboard.startRefresh = jest.fn(); dashboard.panelInEdit = panel; - if (setPreviousAutoRefresh) { - timeSrvMock.previousAutoRefresh = '5s'; + if (pauseAutoRefresh) { + timeSrvMock.autoRefreshPaused = true; } setTimeSrv(timeSrvMock); return { dashboard, panel, timeSrvMock };