fix(core): sign out jump to 404 (#4204)
This commit is contained in:
@@ -15,6 +15,7 @@ import { type FC, Suspense, useCallback, useState } from 'react';
|
|||||||
|
|
||||||
import { authAtom } from '../../../../atoms';
|
import { authAtom } from '../../../../atoms';
|
||||||
import { useCurrentUser } from '../../../../hooks/affine/use-current-user';
|
import { useCurrentUser } from '../../../../hooks/affine/use-current-user';
|
||||||
|
import { useNavigateHelper } from '../../../../hooks/use-navigate-helper';
|
||||||
import { signOutCloud } from '../../../../utils/cloud-utils';
|
import { signOutCloud } from '../../../../utils/cloud-utils';
|
||||||
import { Upload } from '../../../pure/file-upload';
|
import { Upload } from '../../../pure/file-upload';
|
||||||
import * as style from './style.css';
|
import * as style from './style.css';
|
||||||
@@ -137,6 +138,7 @@ const StoragePanel = () => {
|
|||||||
export const AccountSetting: FC = () => {
|
export const AccountSetting: FC = () => {
|
||||||
const t = useAFFiNEI18N();
|
const t = useAFFiNEI18N();
|
||||||
const user = useCurrentUser();
|
const user = useCurrentUser();
|
||||||
|
const { jumpToIndex } = useNavigateHelper();
|
||||||
const setAuthModal = useSetAtom(authAtom);
|
const setAuthModal = useSetAtom(authAtom);
|
||||||
|
|
||||||
const onChangeEmail = useCallback(() => {
|
const onChangeEmail = useCallback(() => {
|
||||||
@@ -187,9 +189,14 @@ export const AccountSetting: FC = () => {
|
|||||||
name={t[`Sign out`]()}
|
name={t[`Sign out`]()}
|
||||||
desc={t['com.affine.setting.sign.out.message']()}
|
desc={t['com.affine.setting.sign.out.message']()}
|
||||||
style={{ cursor: 'pointer' }}
|
style={{ cursor: 'pointer' }}
|
||||||
|
data-testid="sign-out-button"
|
||||||
onClick={useCallback(() => {
|
onClick={useCallback(() => {
|
||||||
signOutCloud().catch(console.error);
|
signOutCloud()
|
||||||
}, [])}
|
.then(() => {
|
||||||
|
jumpToIndex();
|
||||||
|
})
|
||||||
|
.catch(console.error);
|
||||||
|
}, [jumpToIndex])}
|
||||||
>
|
>
|
||||||
<ArrowRightSmallIcon />
|
<ArrowRightSmallIcon />
|
||||||
</SettingRow>
|
</SettingRow>
|
||||||
|
|||||||
@@ -10,6 +10,11 @@ import {
|
|||||||
getBlockSuiteEditorTitle,
|
getBlockSuiteEditorTitle,
|
||||||
waitForEditorLoad,
|
waitForEditorLoad,
|
||||||
} from '@affine-test/kit/utils/page-logic';
|
} from '@affine-test/kit/utils/page-logic';
|
||||||
|
import { clickUserInfoCard } from '@affine-test/kit/utils/setting';
|
||||||
|
import {
|
||||||
|
clickSideBarAllPageButton,
|
||||||
|
clickSideBarSettingButton,
|
||||||
|
} from '@affine-test/kit/utils/sidebar';
|
||||||
import { createLocalWorkspace } from '@affine-test/kit/utils/workspace';
|
import { createLocalWorkspace } from '@affine-test/kit/utils/workspace';
|
||||||
import { expect } from '@playwright/test';
|
import { expect } from '@playwright/test';
|
||||||
|
|
||||||
@@ -100,4 +105,23 @@ test.describe('collaboration', () => {
|
|||||||
expect(await title.innerText()).toBe('TEST TITLE');
|
expect(await title.innerText()).toBe('TEST TITLE');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('exit successfully and re-login', async ({ page }) => {
|
||||||
|
await page.reload();
|
||||||
|
await clickSideBarAllPageButton(page);
|
||||||
|
await page.waitForTimeout(200);
|
||||||
|
const url = page.url();
|
||||||
|
await createLocalWorkspace(
|
||||||
|
{
|
||||||
|
name: 'test',
|
||||||
|
},
|
||||||
|
page
|
||||||
|
);
|
||||||
|
await enableCloudWorkspace(page);
|
||||||
|
await clickSideBarSettingButton(page);
|
||||||
|
await clickUserInfoCard(page);
|
||||||
|
await page.getByTestId('sign-out-button').click();
|
||||||
|
await page.waitForTimeout(5000);
|
||||||
|
expect(page.url()).toBe(url);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -33,3 +33,9 @@ export async function openWorkspaceSettingPanel(
|
|||||||
) {
|
) {
|
||||||
await page.getByTestId('settings-sidebar').getByText(workspaceName).click();
|
await page.getByTestId('settings-sidebar').getByText(workspaceName).click();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function clickUserInfoCard(page: Page) {
|
||||||
|
await page.getByTestId('user-info-card').click({
|
||||||
|
delay: 50,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user