feat(admin): 添加用户管理相关文件

添加用户管理视图、API和状态管理文件
This commit is contained in:
张翔
2026-03-28 14:37:29 +08:00
commit 08ea5fbe98
1643 changed files with 255646 additions and 0 deletions
@@ -0,0 +1,80 @@
import { test, expect } from '@playwright/test';
import { CalendarPage } from './pages/calendar-page';
import { AlmanacPage } from './pages/almanac-page';
test.describe('边界条件测试', () => {
let calendarPage: CalendarPage;
let almanacPage: AlmanacPage;
test('TC-016: 月份边界测试', async ({ page }) => {
calendarPage = new CalendarPage(page);
await calendarPage.navigate();
await calendarPage.clickNextMonth();
await calendarPage.clickNextMonth();
await calendarPage.clickNextMonth();
await calendarPage.clickNextMonth();
await calendarPage.clickNextMonth();
await calendarPage.clickNextMonth();
await calendarPage.clickNextMonth();
await calendarPage.clickNextMonth();
await calendarPage.clickNextMonth();
await calendarPage.clickNextMonth();
await calendarPage.clickNextMonth();
let calendarTitle = await calendarPage.getCalendarTitle();
console.log('Calendar title after 12 next month clicks:', calendarTitle);
await calendarPage.clickNextMonth();
calendarTitle = await calendarPage.getCalendarTitle();
console.log('Calendar title after 13th next month click:', calendarTitle);
await calendarPage.clickPrevMonth();
calendarTitle = await calendarPage.getCalendarTitle();
console.log('Calendar title after prev month click:', calendarTitle);
});
test('TC-017: 日期边界测试', async ({ page }) => {
almanacPage = new AlmanacPage(page);
await almanacPage.navigate();
const initialDateDisplay = await almanacPage.getDateDisplay();
console.log('Initial date display:', initialDateDisplay);
for (let i = 0; i < 32; i++) {
await almanacPage.clickPrevDate();
}
const prevDateDisplay = await almanacPage.getDateDisplay();
console.log('Date display after 32 prev clicks:', prevDateDisplay);
expect(prevDateDisplay).not.toBe(initialDateDisplay);
for (let i = 0; i < 64; i++) {
await almanacPage.clickNextDate();
}
const nextDateDisplay = await almanacPage.getDateDisplay();
console.log('Date display after 64 next clicks:', nextDateDisplay);
expect(nextDateDisplay).not.toBe(prevDateDisplay);
});
test('TC-018: 表单验证测试', async ({ page }) => {
calendarPage = new CalendarPage(page);
await calendarPage.navigate();
const today = new Date();
const selectedDay = today.getDate();
await calendarPage.clickDay(selectedDay);
const selectedDayElement = await calendarPage.getSelectedDay();
expect(selectedDayElement).toBe(selectedDay);
const isLunarInfoVisible = await calendarPage.isLunarInfoCardVisible();
expect(isLunarInfoVisible).toBe(true);
const lunarDate = await calendarPage.getLunarDate();
expect(lunarDate).toBeTruthy();
expect(lunarDate).toContain('农历');
});
});