Chore: Fix intermittent time-related test failure in explore datasource instance update (#30109)

* Chore: Ensure base time is the same when calculating default time range

* Chore: Fix intermittent test failure due to timing
This commit is contained in:
Giordano Ricci 2021-01-07 14:39:23 +00:00 committed by GitHub
parent 1c808be0f3
commit 7b5a9cefc1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 8 deletions

View File

@ -43,9 +43,11 @@ export type TimeFragment = string | DateTime;
export const TIME_FORMAT = 'YYYY-MM-DD HH:mm:ss';
export function getDefaultTimeRange(): TimeRange {
const now = dateTime();
return {
from: dateTime().subtract(6, 'hour'),
to: dateTime(),
from: dateTime(now).subtract(6, 'hour'),
to: now,
raw: { from: 'now-6h', to: 'now' },
};
}

View File

@ -22,7 +22,13 @@ describe('Datasource reducer', () => {
queries,
queryKeys,
} as unknown) as ExploreItemState;
const expectedState: any = {
const result = datasourceReducer(
initialState,
updateDatasourceInstanceAction({ exploreId: ExploreId.left, datasourceInstance, history: [] })
);
const expectedState: Partial<ExploreItemState> = {
datasourceInstance,
queries,
queryKeys,
@ -31,13 +37,14 @@ describe('Datasource reducer', () => {
tableResult: null,
latency: 0,
loading: false,
queryResponse: createEmptyQueryResponse(),
queryResponse: {
// When creating an empty query response we also create a timeRange object with the current time.
// Copying the range from the reducer here prevents intermittent failures when creating them at different times.
...createEmptyQueryResponse(),
timeRange: result.queryResponse.timeRange,
},
};
const result = datasourceReducer(
initialState,
updateDatasourceInstanceAction({ exploreId: ExploreId.left, datasourceInstance, history: [] })
);
expect(result).toMatchObject(expectedState);
});
});