describe('GIS 地图交互', () => { beforeEach(() => { cy.login(); cy.visit('/dashboard'); cy.waitForDashboardLoad(); // 等待地图加载完成 cy.get('.map-container', { timeout: 20000 }).should('be.visible'); }); it('地图基本显示功能', () => { cy.get('.map-container').should('be.visible'); cy.get('.leaflet-map').should('be.visible'); }); it('地图缩放控制', () => { cy.get('.zoom-in-btn').click(); cy.get('.zoom-level').should('contain', '更近'); cy.get('.zoom-out-btn').click(); cy.get('.zoom-level').should('contain', '更远'); }); it('设备标记点击交互', () => { cy.get('.device-marker').first().click(); // 验证弹出信息窗口 cy.get('.device-popup').should('be.visible'); cy.get('.device-popup-name').should('be.visible'); cy.get('.device-popup-status').should('be.visible'); }); it('设备信息详情查看', () => { cy.get('.device-marker').first().click(); cy.get('.device-popup').find('.view-details-btn').click(); // 验证详情弹窗 cy.get('.device-detail-modal').should('be.visible'); cy.get('.device-name').should('be.visible'); cy.get('.device-info').should('be.visible'); }); it('地图图层切换', () => { cy.get('.layer-control').click(); cy.get('.layer-menu').should('be.visible'); cy.get('.satellite-layer').click(); cy.get('.map-container').should('have.class', 'satellite-view'); cy.get('.street-layer').click(); cy.get('.map-container').should('have.class', 'street-view'); }); it('地图区域选择', () => { cy.get('.draw-polygon-btn').click(); // 在地图上绘制多边形 cy.get('.map-container').click({ multiple: true }); cy.get('.finish-drawing').click(); // 验证绘制成功 cy.get('.drawn-area').should('be.visible'); }); it('地图搜索功能', () => { cy.get('.search-input').type('测试区域'); cy.get('.search-btn').click(); // 验证搜索结果 cy.get('.search-results').should('be.visible'); cy.get('.search-result-item').should('have.length.gt', 0); }); it('全屏显示地图', () => { cy.get('.fullscreen-btn').click(); cy.get('.fullscreen-map').should('be.visible'); cy.get('.exit-fullscreen').click(); cy.get('.fullscreen-map').should('not.exist'); }); });