diff --git a/superset-frontend/src/SqlLab/reducers/sqlLab.js b/superset-frontend/src/SqlLab/reducers/sqlLab.js index 2b82f42d09b9c..66850ce079505 100644 --- a/superset-frontend/src/SqlLab/reducers/sqlLab.js +++ b/superset-frontend/src/SqlLab/reducers/sqlLab.js @@ -627,6 +627,12 @@ export default function sqlLabReducer(state = {}, action) { newQueries[id] = { ...state.queries[id], ...changedQuery, + ...(changedQuery.startDttm && { + startDttm: Number(changedQuery.startDttm), + }), + ...(changedQuery.endDttm && { + endDttm: Number(changedQuery.endDttm), + }), // race condition: // because of async behavior, sql lab may still poll a couple of seconds // when it started fetching or finished rendering results diff --git a/superset-frontend/src/SqlLab/reducers/sqlLab.test.js b/superset-frontend/src/SqlLab/reducers/sqlLab.test.js index 40597c41b0719..89ddc61f8c8a6 100644 --- a/superset-frontend/src/SqlLab/reducers/sqlLab.test.js +++ b/superset-frontend/src/SqlLab/reducers/sqlLab.test.js @@ -364,16 +364,24 @@ describe('sqlLabReducer', () => { expect(Object.keys(newState.queries)).toHaveLength(0); }); it('should refresh queries when polling returns new results', () => { + const startDttmInStr = '1693433503447.166992'; + const endDttmInStr = '1693433503500.23132'; newState = sqlLabReducer( { ...newState, queries: { abcd: {} }, }, actions.refreshQueries({ - abcd: query, + abcd: { + ...query, + startDttm: startDttmInStr, + endDttm: endDttmInStr, + }, }), ); expect(newState.queries.abcd.changed_on).toBe(DENORMALIZED_CHANGED_ON); + expect(newState.queries.abcd.startDttm).toBe(Number(startDttmInStr)); + expect(newState.queries.abcd.endDttm).toBe(Number(endDttmInStr)); expect(newState.queriesLastUpdate).toBe(CHANGED_ON_TIMESTAMP); }); it('should refresh queries when polling returns empty', () => {