需求:让非专业用户在项目操作区一次提交,运营审核通过后直接发布。 实现:由 Electron Main 完成安全打包、自动版本、幂等重试和状态脱敏;补齐友好失败反馈、唯一提交入口及隔离 Electron E2E fixture。
38 lines
1.6 KiB
TypeScript
38 lines
1.6 KiB
TypeScript
import { closeElectronApp, expect, test } from './fixtures/electron';
|
|
|
|
test.describe('Makelore Electron smoke flows', () => {
|
|
test('shows the setup wizard on a fresh profile', async ({ page }) => {
|
|
await expect(page.getByTestId('setup-page')).toBeVisible();
|
|
await expect(page.getByTestId('setup-welcome-step')).toBeVisible();
|
|
await expect(page.getByTestId('setup-skip-button')).toBeVisible();
|
|
});
|
|
|
|
test('can skip setup and continue to the login page', async ({ page }) => {
|
|
await expect(page.getByTestId('setup-page')).toBeVisible();
|
|
await page.getByTestId('setup-skip-button').click();
|
|
|
|
await expect(page.getByRole('button', { name: 'Continue in browser' })).toBeVisible();
|
|
await expect(page.getByTestId('main-layout')).toHaveCount(0);
|
|
});
|
|
|
|
test('persists skipped setup across relaunch for the same isolated profile', async ({ electronApp, launchElectronApp }) => {
|
|
const firstWindow = await electronApp.firstWindow();
|
|
await firstWindow.waitForLoadState('domcontentloaded');
|
|
await firstWindow.getByTestId('setup-skip-button').click();
|
|
await expect(firstWindow.getByRole('button', { name: 'Continue in browser' })).toBeVisible();
|
|
|
|
await closeElectronApp(electronApp);
|
|
|
|
const relaunchedApp = await launchElectronApp();
|
|
try {
|
|
const relaunchedWindow = await relaunchedApp.firstWindow();
|
|
await relaunchedWindow.waitForLoadState('domcontentloaded');
|
|
|
|
await expect(relaunchedWindow.getByRole('button', { name: 'Continue in browser' })).toBeVisible();
|
|
await expect(relaunchedWindow.getByTestId('setup-page')).toHaveCount(0);
|
|
} finally {
|
|
await closeElectronApp(relaunchedApp);
|
|
}
|
|
});
|
|
});
|