| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- import { mockI18nSuccess } from '../support/mock/handlers/i18n';
- import { mockGetSoftwareInfoSuccess } from '../support/mock/handlers/system';
- import { mockLoginSuccess } from '../support/mock/handlers/user';
- import {
- mockCheckVersionHasUpdate,
- mockCheckVersionNoUpdate,
- mockDownloadPackage,
- mockInstallPackage
- } from '../support/mock/handlers/versionUpdate';
- import LoginPage from '../support/pageObjects/LoginPage';
- describe('Version Update', () => {
- const loginPage = new LoginPage();
- beforeEach(() => {
- // Mock software_info API to prevent 404 errors
- mockGetSoftwareInfoSuccess();
- // Mock i18n translation file
- mockI18nSuccess('zh_CN');
- mockLoginSuccess();
- });
- it('should check for updates after login', () => {
- mockCheckVersionHasUpdate();
- // 登录流程
- loginPage.visit();
- loginPage.login('admin', '123456');
- cy.wait('@loginSuccess');
- // 等待版本检查完成
- cy.wait('@checkVersionHasUpdate');
- // 验证版本更新弹窗出现
- loginPage.getVersionUpdateModal().should('be.visible');
- });
- it('should start download when user clicks update now', () => {
- mockCheckVersionHasUpdate();
- mockDownloadPackage();
- // 登录并等待版本检查
- loginPage.visit();
- loginPage.login('admin', '123456');
- cy.wait('@loginSuccess');
- cy.wait('@checkVersionHasUpdate');
- // 点击立即更新
- loginPage.getUpdateNowButton().click();
- // 验证下载弹窗出现
- loginPage.getDownloadProgressModal().should('be.visible');
- // 验证API调用
- cy.wait('@downloadPackage');
- });
- it('should skip version when user chooses to skip', () => {
- mockCheckVersionHasUpdate();
- loginPage.visit();
- loginPage.login('admin', '123456');
- cy.wait('@loginSuccess');
- cy.wait('@checkVersionHasUpdate');
- // 点击跳过版本
- loginPage.getSkipVersionButton().click();
- // 检查 Modal 是否不可见
- loginPage.getVersionUpdateModal().should('not.be.visible');
- });
- it('should not show update modal when no new version available', () => {
- mockCheckVersionNoUpdate();
- loginPage.visit();
- loginPage.login('admin', '123456');
- cy.wait('@loginSuccess');
- cy.wait('@checkVersionNoUpdate');
- // 验证没有版本更新弹窗
- // 检查 Modal 是否不可见
- loginPage.getVersionUpdateModal().should('not.be.visible');
- });
- });
|