describe('移动端核心功能', () => { beforeEach(() => { cy.viewport(375, 667); // iPhone 6/7/8 尺寸 cy.login(); cy.visit('/mobile'); }); it('移动端导航菜单', () => { cy.get('.mobile-menu-toggle').click(); cy.get('.mobile-menu').should('be.visible'); cy.get('.mobile-menu-item').should('have.length.gt', 0); cy.get('.mobile-menu-item').first().click(); cy.get('.mobile-menu').should('not.exist'); }); it('移动端设备查看', () => { cy.visit('/mobile/devices'); cy.get('.device-card').should('be.visible'); cy.get('.device-card').first().click(); cy.get('.device-detail').should('be.visible'); }); it('移动端巡检任务操作', () => { cy.visit('/mobile/patrol'); cy.get('.task-list').should('be.visible'); cy.get('.task-card').first().click(); cy.get('.task-actions').should('be.visible'); // 执行任务 cy.get('.start-task').click(); cy.get('.task-report').should('be.visible'); }); it('移动端消息通知', () => { cy.get('.notification-icon').click(); cy.get('.notification-panel').should('be.visible'); cy.get('.notification-item').should('have.length.gt', 0); cy.get('.notification-item').first().click(); cy.get('.notification-detail').should('be.visible'); }); it('移动端拍照上传', () => { cy.visit('/mobile/patrol'); cy.get('.task-card').first().click(); cy.get('.add-photo-btn').click(); cy.get('.camera-modal').should('be.visible'); // 模拟拍照 cy.get('.capture-btn').click(); cy.get('.photo-preview').should('be.visible'); cy.get('upload-btn').click(); cy.contains('上传成功').should('be.visible'); }); it('移动端离线模式', () => { cy.intercept('GET', '/api/**', { forceNetworkError: true }); cy.visit('/mobile/devices'); cy.get('.offline-indicator').should('be.visible'); cy.get('.cached-data').should('be.visible'); // 离线操作应该仍然可用 cy.get('.device-card').first().click(); cy.get('.device-detail').should('be.visible'); }); it('移动端数据同步', () => { cy.get('.sync-btn').click(); cy.get('.sync-indicator').should('be.visible'); cy.get('.sync-complete').should('be.visible'); cy.get('.sync-indicator').should('not.exist'); }); });