From c0152b82ce32894ce0ed62ed2c90ca588bcd71de Mon Sep 17 00:00:00 2001 From: Bhargav Date: Tue, 25 Jun 2024 22:53:51 +0530 Subject: [PATCH] fix: less hour selected in absolute time shouldn't change to query range (#3825) ## Summary by CodeRabbit - **Improvements** - Enhanced the date/time handling in the log search feature for more accurate start time calculations. - **Tests** - Improved reliability of UI tests by forcefully clicking elements in specific scenarios. --------- Co-authored-by: oasisk --- .../playwright-tests/sanity.spec.js | 2 +- web/src/plugins/logs/SearchBar.vue | 50 ++++++++++++------- 2 files changed, 33 insertions(+), 19 deletions(-) diff --git a/tests/ui-testing/playwright-tests/sanity.spec.js b/tests/ui-testing/playwright-tests/sanity.spec.js index 0f52d96781..7e85b747e0 100644 --- a/tests/ui-testing/playwright-tests/sanity.spec.js +++ b/tests/ui-testing/playwright-tests/sanity.spec.js @@ -865,7 +865,7 @@ test.describe("Sanity testcases", () => { .locator('[data-test="index-dropdown-stream"]') .fill("e2e_tabledashboard"); await page.waitForTimeout(4000); - await page.getByRole("option", { name: "e2e_tabledashboard" }).click(); + await page.getByRole("option", { name: "e2e_tabledashboard" }).click({force: true}); await page.waitForTimeout(6000); await page diff --git a/web/src/plugins/logs/SearchBar.vue b/web/src/plugins/logs/SearchBar.vue index da9c29010d..fa4afbb84f 100644 --- a/web/src/plugins/logs/SearchBar.vue +++ b/web/src/plugins/logs/SearchBar.vue @@ -1241,26 +1241,40 @@ export default defineComponent({ }; const updateDateTime = async (value: object) => { - if (value.valueType == "absolute" && searchObj.data.stream.selectedStream.length > 0 && searchObj.data.datetime.queryRangeRestrictionInHour > 0 && value.hasOwnProperty("selectedDate") && value.hasOwnProperty("selectedTime") && value.selectedDate.hasOwnProperty("from") && value.selectedTime.hasOwnProperty("startTime")) { + if ( + value.valueType == "absolute" && + searchObj.data.stream.selectedStream.length > 0 && + searchObj.data.datetime.queryRangeRestrictionInHour > 0 && + value.hasOwnProperty("selectedDate") && + value.hasOwnProperty("selectedTime") && + value.selectedDate.hasOwnProperty("from") && + value.selectedTime.hasOwnProperty("startTime") + ) { // Convert hours to microseconds - value.startTime = - value.endTime - (searchObj.data.datetime.queryRangeRestrictionInHour * - 60 * - 60 * - 1000000); - value.selectedDate.from = timestampToTimezoneDate( - value.startTime / 1000, - store.state.timezone, - "yyyy/MM/DD" - ); - value.selectedTime.startTime = timestampToTimezoneDate( - value.startTime / 1000, - store.state.timezone, - "HH:mm" - ); + let newStartTime = + parseInt(value.endTime) - + searchObj.data.datetime.queryRangeRestrictionInHour * + 60 * + 60 * + 1000000; - dateTimeRef.value.setAbsoluteTime(value.startTime, value.endTime); - dateTimeRef.value.setDateType("absolute"); + if (parseInt(newStartTime) > parseInt(value.startTime)) { + value.startTime = newStartTime; + + value.selectedDate.from = timestampToTimezoneDate( + value.startTime / 1000, + store.state.timezone, + "yyyy/MM/DD" + ); + value.selectedTime.startTime = timestampToTimezoneDate( + value.startTime / 1000, + store.state.timezone, + "HH:mm" + ); + + dateTimeRef.value.setAbsoluteTime(value.startTime, value.endTime); + dateTimeRef.value.setDateType("absolute"); + } } searchObj.data.datetime = { startTime: value.startTime,