Date: Thu, 20 Feb 2025 16:37:56 +0800
Subject: [PATCH 5/6] [chore]: fix ci error
---
packages/base/src/App.test.tsx | 3 ++-
packages/base/src/__snapshots__/App.test.tsx.snap | 2 +-
packages/base/src/page/Login/index.tsx | 1 -
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/packages/base/src/App.test.tsx b/packages/base/src/App.test.tsx
index 5c4fbb5a7..9afeacf9a 100644
--- a/packages/base/src/App.test.tsx
+++ b/packages/base/src/App.test.tsx
@@ -25,7 +25,7 @@ import { DMS_REDIRECT_KEY_PARAMS_NAME } from '@actiontech/shared/lib/data/routeP
import { SystemRole } from '@actiontech/shared/lib/enum';
import { AuthRouterConfig } from './router/router';
import { cloneDeep } from 'lodash';
-
+import dmsSystem from './testUtils/mockApi/system';
jest.mock('react-router-dom', () => ({
...jest.requireActual('react-router-dom'),
useNavigate: jest.fn()
@@ -68,6 +68,7 @@ describe('App', () => {
requestGetBasicInfo = mockDMSGlobalApi.getBasicInfo();
getUserBySessionSpy = mockDMSGlobalApi.getUserBySession();
getSystemModuleRedDotsSpy = baseSystem.getSystemModuleRedDots();
+ dmsSystem.getLoginTips();
jest.useFakeTimers();
(useNavigate as jest.Mock).mockImplementation(() => navigateSpy);
diff --git a/packages/base/src/__snapshots__/App.test.tsx.snap b/packages/base/src/__snapshots__/App.test.tsx.snap
index 561756e29..2d2895e19 100644
--- a/packages/base/src/__snapshots__/App.test.tsx.snap
+++ b/packages/base/src/__snapshots__/App.test.tsx.snap
@@ -2508,7 +2508,7 @@ exports[`App render App when token is not existed 1`] = `
{
const { t } = useTranslation();
From cd193be658a70b3d2d653c28253e6ca0ec4a445a Mon Sep 17 00:00:00 2001
From: LZS911 <932177767@qq.com>
Date: Fri, 21 Feb 2025 10:54:16 +0800
Subject: [PATCH 6/6] [chore]: update code according to API changes
---
.../Login/__snapshots__/index.test.tsx.snap | 2 +-
packages/base/src/page/Login/index.test.tsx | 53 ++++++++++++++-----
packages/base/src/page/Login/index.tsx | 18 +++++--
.../base/src/testUtils/mockApi/system/data.ts | 4 +-
.../shared/lib/api/base/service/common.d.ts | 4 --
5 files changed, 58 insertions(+), 23 deletions(-)
diff --git a/packages/base/src/page/Login/__snapshots__/index.test.tsx.snap b/packages/base/src/page/Login/__snapshots__/index.test.tsx.snap
index d4772df35..91546183c 100644
--- a/packages/base/src/page/Login/__snapshots__/index.test.tsx.snap
+++ b/packages/base/src/page/Login/__snapshots__/index.test.tsx.snap
@@ -257,7 +257,7 @@ exports[`page/Login-ee render login snap 1`] = `
href="/v1/dms/oauth2/link"
>
- Oauth2 Login
+ Login With Oauth2
diff --git a/packages/base/src/page/Login/index.test.tsx b/packages/base/src/page/Login/index.test.tsx
index 2996c7316..ad337f350 100644
--- a/packages/base/src/page/Login/index.test.tsx
+++ b/packages/base/src/page/Login/index.test.tsx
@@ -4,7 +4,7 @@ import { useNavigate, useSearchParams } from 'react-router-dom';
import MockDate from 'mockdate';
import { superRender } from '../../testUtils/customRender';
import dms from '../../testUtils/mockApi/global';
-import { UserInfo } from '../../testUtils/mockApi/global/data';
+import { oauth2Tips, UserInfo } from '../../testUtils/mockApi/global/data';
import { getBySelector } from '@actiontech/shared/lib/testUtil/customQuery';
import { createSpySuccessResponse } from '@actiontech/shared/lib/testUtil/mockApi';
import { LocalStorageWrapper } from '@actiontech/shared';
@@ -37,6 +37,7 @@ describe('page/Login-ee', () => {
const assignMock = jest.fn();
const useSearchParamsSpy: jest.Mock = useSearchParams as jest.Mock;
let requestGetOauth2Tip: jest.SpyInstance;
+ let requestGetLoginBasicConfig: jest.SpyInstance;
const customRender = (params = {}) => {
return superRender(, undefined, { initStore: params });
@@ -48,7 +49,8 @@ describe('page/Login-ee', () => {
jest.useFakeTimers();
useSearchParamsSpy.mockReturnValue([new URLSearchParams()]);
MockDate.set('2023-12-19 12:00:00');
- requestGetOauth2Tip = system.getLoginTips();
+ requestGetOauth2Tip = dms.getOauth2Tips();
+ requestGetLoginBasicConfig = system.getLoginTips();
dms.mockAllApi();
});
@@ -63,13 +65,13 @@ describe('page/Login-ee', () => {
it('render login snap', async () => {
const { baseElement } = customRender();
- await act(async () => jest.advanceTimersByTime(3300));
expect(requestGetOauth2Tip).toHaveBeenCalledTimes(1);
+ expect(requestGetLoginBasicConfig).toHaveBeenCalledTimes(1);
+
+ await act(async () => jest.advanceTimersByTime(3300));
expect(screen.queryByText('已阅读并同意')).toBeInTheDocument();
expect(screen.queryByText('用户协议')).toBeInTheDocument();
- expect(
- screen.queryByText(mockGetLoginBasicConfigurationData.oauth2_login_tip)
- ).toBeInTheDocument();
+ expect(screen.queryByText(oauth2Tips.login_tip!)).toBeInTheDocument();
expect(baseElement).toMatchSnapshot();
const otherLoginBtn = getBySelector('.other-login-btn', baseElement);
@@ -81,8 +83,16 @@ describe('page/Login-ee', () => {
createSpySuccessResponse({
data: {
enable_oauth2: false,
- oauth2_login_tip: 'Login no Oauth2',
- login_button_text: ''
+ login_tip: 'Login no Oauth2'
+ }
+ })
+ );
+
+ requestGetLoginBasicConfig.mockImplementation(() =>
+ createSpySuccessResponse({
+ data: {
+ login_button_text: '登录',
+ disable_user_pwd_login: false
}
})
);
@@ -116,9 +126,17 @@ describe('page/Login-ee', () => {
requestGetOauth2Tip.mockImplementation(() =>
createSpySuccessResponse({
data: {
- login_button_text: '登录',
enable_oauth2: true,
- oauth2_login_tip: 'Login With Oauth2'
+ login_tip: 'Login With Oauth2'
+ }
+ })
+ );
+
+ requestGetLoginBasicConfig.mockImplementation(() =>
+ createSpySuccessResponse({
+ data: {
+ login_button_text: '登录',
+ disable_user_pwd_login: false
}
})
);
@@ -280,9 +298,16 @@ describe('page/Login-ee', () => {
requestGetOauth2Tip.mockImplementation(() =>
createSpySuccessResponse({
data: {
- login_button_text: '登录',
enable_oauth2: true,
- oauth2_login_tip: 'Login With Oauth2',
+ login_tip: 'Login With Oauth2'
+ }
+ })
+ );
+
+ requestGetLoginBasicConfig.mockImplementation(() =>
+ createSpySuccessResponse({
+ data: {
+ login_button_text: '登录',
disable_user_pwd_login: true
}
})
@@ -293,6 +318,10 @@ describe('page/Login-ee', () => {
expect(screen.getByText('登 录').closest('button')).toBeDisabled();
+ fireEvent.mouseEnter(screen.getByText('登 录'));
+
+ await screen.findByText('当前已禁用账密登录');
+
fireEvent.change(getBySelector('#username'), {
target: { value: SystemRole.admin }
});
diff --git a/packages/base/src/page/Login/index.tsx b/packages/base/src/page/Login/index.tsx
index 1d266c4db..13bf298ce 100644
--- a/packages/base/src/page/Login/index.tsx
+++ b/packages/base/src/page/Login/index.tsx
@@ -28,7 +28,10 @@ import {
OPEN_CLOUD_BEAVER_URL_PARAM_NAME,
ROUTE_PATHS
} from '@actiontech/shared/lib/data/routePaths';
-import { ConfigurationService } from '@actiontech/shared/lib/api';
+import {
+ ConfigurationService,
+ OAuth2Service
+} from '@actiontech/shared/lib/api';
const Login = () => {
const { t } = useTranslation();
@@ -112,6 +115,14 @@ const Login = () => {
}
);
+ const { run: getOauth2Tips, data: oauthConfig } = useRequest(
+ () => {
+ return OAuth2Service.GetOauth2Tips().then((res) => res.data?.data ?? {});
+ },
+ {
+ manual: true
+ }
+ );
const renderLoginButton = () => {
const disabledLoginButton =
username === SystemRole.admin
@@ -146,6 +157,7 @@ const Login = () => {
// #if [ee]
useEffect(() => {
getLoginBasicConfig();
+ getOauth2Tips();
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
// #endif
@@ -222,9 +234,9 @@ const Login = () => {
{renderLoginButton()}
- {loginBasicConfig?.enable_oauth2 ? (
+ {oauthConfig?.enable_oauth2 ? (
- {loginBasicConfig?.oauth2_login_tip}
+ {oauthConfig?.login_tip}
) : null}
diff --git a/packages/base/src/testUtils/mockApi/system/data.ts b/packages/base/src/testUtils/mockApi/system/data.ts
index 87f93fad4..4c2a2b436 100644
--- a/packages/base/src/testUtils/mockApi/system/data.ts
+++ b/packages/base/src/testUtils/mockApi/system/data.ts
@@ -100,7 +100,5 @@ export const mockCodingConfigurationData = {
export const mockGetLoginBasicConfigurationData = {
login_button_text: 'Login',
- disable_user_pwd_login: false,
- oauth2_login_tip: 'Oauth2 Login',
- enable_oauth2: true
+ disable_user_pwd_login: false
};
diff --git a/packages/shared/lib/api/base/service/common.d.ts b/packages/shared/lib/api/base/service/common.d.ts
index 75a724ec6..c7055b054 100644
--- a/packages/shared/lib/api/base/service/common.d.ts
+++ b/packages/shared/lib/api/base/service/common.d.ts
@@ -1551,11 +1551,7 @@ export interface ILoginConfiguration {
export interface ILoginTipsResData {
disable_user_pwd_login?: boolean;
- enable_oauth2?: boolean;
-
login_button_text?: string;
-
- oauth2_login_tip?: string;
}
export interface IMIMEHeader {