diff --git a/dolphinscheduler-e2e/dolphinscheduler-e2e-case/src/test/java/org/apache/dolphinscheduler/e2e/pages/security/TokenPage.java b/dolphinscheduler-e2e/dolphinscheduler-e2e-case/src/test/java/org/apache/dolphinscheduler/e2e/pages/security/TokenPage.java index 4d58a94482f8..093b13f4fdcb 100644 --- a/dolphinscheduler-e2e/dolphinscheduler-e2e-case/src/test/java/org/apache/dolphinscheduler/e2e/pages/security/TokenPage.java +++ b/dolphinscheduler-e2e/dolphinscheduler-e2e-case/src/test/java/org/apache/dolphinscheduler/e2e/pages/security/TokenPage.java @@ -69,6 +69,7 @@ public TokenPage create(String userName) { WebDriverWaitFactory.createWebDriverWait(driver) .until(ExpectedConditions.elementToBeClickable(createTokenForm().selectUserNameDropdown())); + setExpireTime(30); createTokenForm().selectUserNameDropdown().click(); WebDriverWaitFactory.createWebDriverWait(driver) .until(ExpectedConditions.visibilityOfElementLocated(new By.ByClassName( @@ -161,4 +162,25 @@ public class TokenForm { private WebElement buttonCancel; } + + private void setExpireTime(int daysAfter) { + try { + By dateTimePickerInputLocator = By.cssSelector(".n-date-picker input[type='text']"); + WebDriverWait wait = WebDriverWaitFactory.createWebDriverWait(driver); + WebElement dateTimeInput = wait.until(ExpectedConditions.elementToBeClickable(dateTimePickerInputLocator)); + + LocalDateTime futureDateTime = LocalDateTime.now().plusDays(daysAfter); + DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + String futureDateTimeStr = futureDateTime.format(dateTimeFormatter); + + ((JavascriptExecutor) driver).executeScript( + "arguments[0].value = arguments[1]; " + + "arguments[0].dispatchEvent(new Event('input')); " + + "arguments[0].dispatchEvent(new Event('change')); ", + dateTimeInput, futureDateTimeStr); + } catch (Exception e) { + throw new RuntimeException( + "Failed to set expire time after " + daysAfter + " days. Error: " + e.getMessage(), e); + } + } } diff --git a/dolphinscheduler-ui/src/views/security/token-manage/components/token-modal.tsx b/dolphinscheduler-ui/src/views/security/token-manage/components/token-modal.tsx index b5fa4cc7072a..7bae566c6f8e 100644 --- a/dolphinscheduler-ui/src/views/security/token-manage/components/token-modal.tsx +++ b/dolphinscheduler-ui/src/views/security/token-manage/components/token-modal.tsx @@ -71,7 +71,7 @@ const TokenModal = defineComponent({ (userStore.getUserInfo as UserInfoRes).userType === 'GENERAL_USER' ? (userStore.getUserInfo as UserInfoRes).id : null - variables.model.expireTime = Date.now() + variables.model.expireTime = null variables.model.token = '' } else { variables.model.userId = props.row.userId @@ -110,7 +110,7 @@ const TokenModal = defineComponent({ (userStore.getUserInfo as UserInfoRes).userType === 'GENERAL_USER' ? (userStore.getUserInfo as UserInfoRes).id : null - variables.model.expireTime = Date.now() + variables.model.expireTime = null variables.model.token = '' } else { variables.model.id = props.row.id diff --git a/dolphinscheduler-ui/src/views/security/token-manage/components/use-modal.ts b/dolphinscheduler-ui/src/views/security/token-manage/components/use-modal.ts index 1a05ee5cb206..e06f9fbe7d06 100644 --- a/dolphinscheduler-ui/src/views/security/token-manage/components/use-modal.ts +++ b/dolphinscheduler-ui/src/views/security/token-manage/components/use-modal.ts @@ -44,7 +44,7 @@ export function useModal( ? (userStore.getUserInfo as UserInfoRes).id : null ), - expireTime: ref(Date.now()), + expireTime: null as number | null, token: ref(''), generalOptions: [] }, @@ -101,7 +101,7 @@ export function useModal( const getToken = () => { const data = { userId: (userStore.getUserInfo as UserInfoRes).id, - expireTime: format(variables.model.expireTime, 'yyyy-MM-dd HH:mm:ss') + expireTime: format(variables.model.expireTime!, 'yyyy-MM-dd HH:mm:ss') } useAsyncState( @@ -129,7 +129,7 @@ export function useModal( const submitTokenModal = () => { const data = { userId: Number(variables.model.userId), - expireTime: format(variables.model.expireTime, 'yyyy-MM-dd HH:mm:ss'), + expireTime: format(variables.model.expireTime!, 'yyyy-MM-dd HH:mm:ss'), token: variables.model.token } @@ -138,7 +138,7 @@ export function useModal( (userStore.getUserInfo as UserInfoRes).userType === 'GENERAL_USER' ? (userStore.getUserInfo as UserInfoRes).id : null - variables.model.expireTime = Date.now() + variables.model.expireTime = null variables.model.token = '' ctx.emit('confirmModal', props.showModalRef) }) @@ -148,7 +148,7 @@ export function useModal( const data = { id: variables.model.id, userId: Number(variables.model.userId), - expireTime: format(variables.model.expireTime, 'yyyy-MM-dd HH:mm:ss'), + expireTime: format(variables.model.expireTime!, 'yyyy-MM-dd HH:mm:ss'), token: variables.model.token }