| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- import { TIMEOUTS } from '../../utils/timeouts';
- import { test, expect } from '../../utils/test-setup';
- /**
- * 户籍省份分布图 Y 轴显示验证 (Story 13.22 修复)
- * 验证 Y 轴显示省份名称而非数字
- */
- const TEST_USER_PHONE = '13800138002'; // 使用有数据的测试账号
- const TEST_USER_PASSWORD = '123123';
- const _STATISTICS_PAGE_URL = '/pages/yongren/statistics/index';
- test.describe('户籍省份分布图 Y 轴显示验证', () => {
- test.use({ storageState: undefined });
- test('户籍省份分布图 Y 轴应显示省份名称而非数字', async ({ enterpriseMiniPage: miniPage }) => {
- await miniPage.goto();
- await miniPage.login(TEST_USER_PHONE, TEST_USER_PASSWORD);
- await miniPage.expectLoginSuccess();
- await miniPage.page.waitForTimeout(TIMEOUTS.MEDIUM);
- await miniPage.navigateToStatisticsPage();
- // 等待页面加载完成,而不是使用 waitForStatisticsDataLoaded
- await miniPage.page.waitForTimeout(TIMEOUTS.LONG);
- // 检查页面是否包含"户籍省份分布"标题
- const householdChartTitle = miniPage.page.getByText('户籍省份分布');
- await expect(householdChartTitle).toBeVisible();
- console.debug('[户籍省份分布] 图表标题显示 ✓');
- // 滚动到户籍省份分布图表位置
- await miniPage.page.getByText('户籍省份分布').scrollIntoViewIfNeeded();
- await miniPage.page.waitForTimeout(2000);
- // 截图保存到 test-results(使用全页截图以捕获下方图表)
- await miniPage.page.screenshot({
- path: 'test-results/household-province-chart.png',
- fullPage: true
- });
- console.debug('[户籍省份分布] 截图已保存到 test-results/household-province-chart.png');
- // 验证图表渲染 - 检查是否有 canvas 元素
- const canvasElements = await miniPage.page.locator('canvas').all();
- expect(canvasElements.length).toBeGreaterThan(0);
- console.debug(`[户籍省份分布] 检测到 ${canvasElements.length} 个 canvas 元素 ✓`);
- // 检查控制台日志中的调试信息
- const logs: string[] = [];
- miniPage.page.on('console', msg => {
- if (msg.text().includes('convertToColumnData')) {
- logs.push(msg.text());
- console.debug(`[控制台日志] ${msg.text()}`);
- }
- });
- // 给一些时间让控制台日志输出
- await miniPage.page.waitForTimeout(2000);
- // 验证调试日志中包含省份信息
- const hasProvinceLog = logs.some(log => log.includes('Output categories'));
- if (hasProvinceLog) {
- console.debug('[户籍省份分布] 找到 convertToColumnData 调试日志 ✓');
- }
- console.debug('[户籍省份分布] 测试完成');
- });
- test('验证户籍省份分布图数据格式', async ({ enterpriseMiniPage: miniPage }) => {
- await miniPage.goto();
- await miniPage.login(TEST_USER_PHONE, TEST_USER_PASSWORD);
- await miniPage.expectLoginSuccess();
- await miniPage.page.waitForTimeout(TIMEOUTS.MEDIUM);
- await miniPage.navigateToStatisticsPage();
- // 等待页面加载完成
- await miniPage.page.waitForTimeout(TIMEOUTS.LONG);
- // 获取页面内容以检查数据
- const pageContent = await miniPage.page.content();
- expect(pageContent).toContain('户籍省份分布');
- console.debug('[户籍省份分布] 页面包含户籍省份分布内容 ✓');
- // 检查是否有中文省份名称模式(江苏、浙江、安徽等)
- const provincePattern = /(江苏|浙江|安徽|上海|北京|天津|重庆|广东|福建|山东|河南|湖北|湖南|江西|河北|山西|内蒙古|辽宁|吉林|黑龙江|四川|云南|贵州|陕西|甘肃|青海|广西|海南|西藏|宁夏|新疆|台湾|香港|澳门)/;
- const hasProvinceName = provincePattern.test(pageContent);
- if (hasProvinceName) {
- console.debug('[户籍省份分布] 检测到省份名称模式 ✓');
- } else {
- console.debug('[户籍省份分布] 未检测到常见省份名称(可能数据为空或省份名称不常见)');
- }
- // 最终验证:图表应该可见且没有 JavaScript 错误
- const chartContainer = miniPage.page.getByText('户籍省份分布');
- await expect(chartContainer).toBeVisible();
- console.debug('[户籍省份分布] 图表容器可见性验证通过 ✓');
- });
- });
|