feat(admin): 添加用户管理相关文件
添加用户管理视图、API和状态管理文件
This commit is contained in:
@@ -0,0 +1,226 @@
|
||||
/**
|
||||
* Uniapp 黄历页面 E2E 测试
|
||||
* 测试黄历功能的核心业务流程
|
||||
*/
|
||||
|
||||
import { test, expect } from '../shared/fixtures/test-fixtures';
|
||||
import { testLogger } from '../shared/utils/test-logger';
|
||||
|
||||
test.describe('黄历页面功能测试 @uniapp @almanac', () => {
|
||||
test.beforeEach(async ({ uniappAlmanacPage }) => {
|
||||
await uniappAlmanacPage.navigate();
|
||||
});
|
||||
|
||||
test('黄历页面 - 正常加载显示', async ({ uniappAlmanacPage }) => {
|
||||
testLogger.startTest('黄历页面 - 正常加载显示');
|
||||
|
||||
// 验证页面标题
|
||||
const title = await uniappAlmanacPage.getPageTitle();
|
||||
expect(title).toContain('黄历');
|
||||
|
||||
// 验证宜忌列表可见
|
||||
const yiList = await uniappAlmanacPage.getYiList();
|
||||
expect(yiList.length).toBeGreaterThanOrEqual(0);
|
||||
|
||||
testLogger.endTest('黄历页面 - 正常加载显示', 'passed');
|
||||
});
|
||||
|
||||
test('黄历页面 - 宜忌信息显示', async ({ uniappAlmanacPage }) => {
|
||||
testLogger.startTest('黄历页面 - 宜忌信息显示');
|
||||
|
||||
// 获取宜列表
|
||||
const yiList = await uniappAlmanacPage.getYiList();
|
||||
testLogger.info(`宜: ${yiList.join(', ')}`);
|
||||
|
||||
// 获取忌列表
|
||||
const jiList = await uniappAlmanacPage.getJiList();
|
||||
testLogger.info(`忌: ${jiList.join(', ')}`);
|
||||
|
||||
// 验证宜忌数据不为空
|
||||
expect(yiList.length + jiList.length).toBeGreaterThanOrEqual(0);
|
||||
|
||||
testLogger.endTest('黄历页面 - 宜忌信息显示', 'passed');
|
||||
});
|
||||
|
||||
test('黄历页面 - 日期切换功能', async ({ uniappAlmanacPage }) => {
|
||||
testLogger.startTest('黄历页面 - 日期切换功能');
|
||||
|
||||
// 获取当前日期
|
||||
const currentDate = await uniappAlmanacPage.getCurrentDate();
|
||||
testLogger.info(`当前日期: ${currentDate}`);
|
||||
|
||||
// 点击下一天
|
||||
await uniappAlmanacPage.clickNextDate();
|
||||
|
||||
// 获取切换后的日期
|
||||
const nextDate = await uniappAlmanacPage.getCurrentDate();
|
||||
testLogger.info(`下一天日期: ${nextDate}`);
|
||||
|
||||
// 验证日期已变化
|
||||
expect(nextDate).not.toEqual(currentDate);
|
||||
|
||||
// 点击前一天
|
||||
await uniappAlmanacPage.clickPrevDate();
|
||||
|
||||
// 获取切换后的日期
|
||||
const prevDate = await uniappAlmanacPage.getCurrentDate();
|
||||
testLogger.info(`前一天日期: ${prevDate}`);
|
||||
|
||||
testLogger.endTest('黄历页面 - 日期切换功能', 'passed');
|
||||
});
|
||||
|
||||
test('黄历页面 - 宜忌数据随日期变化', async ({ uniappAlmanacPage }) => {
|
||||
testLogger.startTest('黄历页面 - 宜忌数据随日期变化');
|
||||
|
||||
// 获取当前宜忌
|
||||
const yiList1 = await uniappAlmanacPage.getYiList();
|
||||
const jiList1 = await uniappAlmanacPage.getJiList();
|
||||
|
||||
// 切换日期
|
||||
await uniappAlmanacPage.clickNextDate();
|
||||
|
||||
// 获取新的宜忌
|
||||
const yiList2 = await uniappAlmanacPage.getYiList();
|
||||
const jiList2 = await uniappAlmanacPage.getJiList();
|
||||
|
||||
// 验证宜忌数据已更新(可能相同也可能不同)
|
||||
testLogger.info(`日期1 - 宜: ${yiList1.length}项, 忌: ${jiList1.length}项`);
|
||||
testLogger.info(`日期2 - 宜: ${yiList2.length}项, 忌: ${jiList2.length}项`);
|
||||
|
||||
testLogger.endTest('黄历页面 - 宜忌数据随日期变化', 'passed');
|
||||
});
|
||||
|
||||
test('黄历页面 - 跨月日期切换', async ({ uniappAlmanacPage }) => {
|
||||
testLogger.startTest('黄历页面 - 跨月日期切换');
|
||||
|
||||
// 连续切换多天,跨越月份
|
||||
for (let i = 0; i < 35; i++) {
|
||||
await uniappAlmanacPage.clickNextDate();
|
||||
}
|
||||
|
||||
// 验证页面正常
|
||||
const yiList = await uniappAlmanacPage.getYiList();
|
||||
expect(yiList.length).toBeGreaterThanOrEqual(0);
|
||||
|
||||
testLogger.endTest('黄历页面 - 跨月日期切换', 'passed');
|
||||
});
|
||||
|
||||
test('黄历页面 - 特殊节日显示', async ({ uniappAlmanacPage }) => {
|
||||
testLogger.startTest('黄历页面 - 特殊节日显示');
|
||||
|
||||
// 导航到春节(假设可以通过某种方式设置日期)
|
||||
await uniappAlmanacPage.navigate();
|
||||
|
||||
// 获取当前日期信息
|
||||
const currentDate = await uniappAlmanacPage.getCurrentDate();
|
||||
|
||||
// 验证页面正常显示
|
||||
const yiList = await uniappAlmanacPage.getYiList();
|
||||
expect(yiList.length).toBeGreaterThanOrEqual(0);
|
||||
|
||||
testLogger.info(`当前日期: ${currentDate}`);
|
||||
|
||||
testLogger.endTest('黄历页面 - 特殊节日显示', 'passed');
|
||||
});
|
||||
});
|
||||
|
||||
test.describe('黄历页面边界测试 @uniapp @almanac @boundary', () => {
|
||||
test.beforeEach(async ({ uniappAlmanacPage }) => {
|
||||
await uniappAlmanacPage.navigate();
|
||||
});
|
||||
|
||||
test('黄历页面 - 快速连续切换日期', async ({ uniappAlmanacPage }) => {
|
||||
testLogger.startTest('黄历页面 - 快速连续切换日期');
|
||||
|
||||
// 快速连续点击
|
||||
for (let i = 0; i < 20; i++) {
|
||||
await uniappAlmanacPage['page'].click('[data-testid="next-date"]').catch(() => {});
|
||||
}
|
||||
|
||||
// 等待页面稳定
|
||||
await uniappAlmanacPage.waitForTimeout(1000);
|
||||
|
||||
// 验证页面没有崩溃
|
||||
const yiList = await uniappAlmanacPage.getYiList();
|
||||
expect(yiList.length).toBeGreaterThanOrEqual(0);
|
||||
|
||||
testLogger.endTest('黄历页面 - 快速连续切换日期', 'passed');
|
||||
});
|
||||
|
||||
test('黄历页面 - 跨年日期切换', async ({ uniappAlmanacPage }) => {
|
||||
testLogger.startTest('黄历页面 - 跨年日期切换');
|
||||
|
||||
// 连续切换365天
|
||||
for (let i = 0; i < 365; i++) {
|
||||
await uniappAlmanacPage.clickNextDate();
|
||||
}
|
||||
|
||||
// 验证页面正常
|
||||
const yiList = await uniappAlmanacPage.getYiList();
|
||||
expect(yiList.length).toBeGreaterThanOrEqual(0);
|
||||
|
||||
testLogger.endTest('黄历页面 - 跨年日期切换', 'passed');
|
||||
});
|
||||
|
||||
test('黄历页面 - 响应式布局', async ({ uniappAlmanacPage }) => {
|
||||
testLogger.startTest('黄历页面 - 响应式布局');
|
||||
|
||||
// 设置不同的视口大小
|
||||
const viewports = [
|
||||
{ width: 375, height: 667 },
|
||||
{ width: 414, height: 896 },
|
||||
{ width: 768, height: 1024 },
|
||||
];
|
||||
|
||||
for (const viewport of viewports) {
|
||||
await uniappAlmanacPage['page'].setViewportSize(viewport);
|
||||
await uniappAlmanacPage.reload();
|
||||
|
||||
const yiList = await uniappAlmanacPage.getYiList();
|
||||
expect(yiList.length).toBeGreaterThanOrEqual(0);
|
||||
|
||||
testLogger.info(`视口 ${viewport.width}x${viewport.height}: 正常显示`);
|
||||
}
|
||||
|
||||
testLogger.endTest('黄历页面 - 响应式布局', 'passed');
|
||||
});
|
||||
});
|
||||
|
||||
test.describe('黄历页面性能测试 @uniapp @almanac @performance', () => {
|
||||
test('黄历页面 - 加载性能', async ({ uniappAlmanacPage }) => {
|
||||
testLogger.startTest('黄历页面 - 加载性能');
|
||||
|
||||
const startTime = Date.now();
|
||||
await uniappAlmanacPage.navigate();
|
||||
const loadTime = Date.now() - startTime;
|
||||
|
||||
// 验证加载时间小于3秒
|
||||
expect(loadTime).toBeLessThan(3000);
|
||||
|
||||
testLogger.info(`页面加载时间: ${loadTime}ms`);
|
||||
|
||||
testLogger.endTest('黄历页面 - 加载性能', 'passed');
|
||||
});
|
||||
|
||||
test('黄历页面 - 日期切换性能', async ({ uniappAlmanacPage }) => {
|
||||
testLogger.startTest('黄历页面 - 日期切换性能');
|
||||
|
||||
await uniappAlmanacPage.navigate();
|
||||
|
||||
const startTime = Date.now();
|
||||
|
||||
// 连续切换30天
|
||||
for (let i = 0; i < 30; i++) {
|
||||
await uniappAlmanacPage.clickNextDate();
|
||||
}
|
||||
|
||||
const switchTime = Date.now() - startTime;
|
||||
|
||||
// 验证切换时间小于3秒
|
||||
expect(switchTime).toBeLessThan(3000);
|
||||
|
||||
testLogger.info(`30天切换时间: ${switchTime}ms`);
|
||||
|
||||
testLogger.endTest('黄历页面 - 日期切换性能', 'passed');
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user