113 lines
3.5 KiB
TypeScript
113 lines
3.5 KiB
TypeScript
/**
|
|
* 教师端 E2E 测试 - 任务模板
|
|
*/
|
|
|
|
import { test, expect } from '@playwright/test';
|
|
import { loginAsTeacher, clickSubMenu, waitForTable } from './helpers';
|
|
|
|
test.describe('教师端任务模板功能', () => {
|
|
test.beforeEach(async ({ page }) => {
|
|
await loginAsTeacher(page);
|
|
});
|
|
|
|
test('验证任务模板列表页面加载', async ({ page }) => {
|
|
// 导航到任务模板页面
|
|
await clickSubMenu(page, '任务管理', '任务模板');
|
|
|
|
// 等待页面加载
|
|
await page.waitForTimeout(2000);
|
|
|
|
// 验证页面标题
|
|
const hasTitle = await page.getByText(/模板 | 任务模板/).count() > 0;
|
|
test.info().annotations.push({
|
|
type: hasTitle ? 'success' : 'warning',
|
|
description: `任务模板标题:${hasTitle ? '存在' : '不存在'}`,
|
|
});
|
|
});
|
|
|
|
test('验证任务模板数据加载', async ({ page }) => {
|
|
// 导航到任务模板页面
|
|
await clickSubMenu(page, '任务管理', '任务模板');
|
|
|
|
// 等待页面加载
|
|
await page.waitForTimeout(3000);
|
|
|
|
// 检查是否有模板数据
|
|
const hasTemplateList = await page.locator('[class*="template"], table').count() > 0;
|
|
const hasEmpty = await page.getByText(/暂无数据 | 暂无模板/).count() > 0;
|
|
|
|
test.info().annotations.push({
|
|
type: 'info',
|
|
description: `任务模板数据:${hasTemplateList ? '存在' : hasEmpty ? '空状态' : '未知'}`,
|
|
});
|
|
});
|
|
|
|
test('验证创建任务模板功能', async ({ page }) => {
|
|
// 导航到任务模板页面
|
|
await clickSubMenu(page, '任务管理', '任务模板');
|
|
|
|
// 等待页面加载
|
|
await page.waitForTimeout(2000);
|
|
|
|
// 查找创建按钮
|
|
const createBtn = page.getByRole('button', { name: /创建 | 新建 | 添加/ });
|
|
const hasCreateBtn = await createBtn.count() > 0;
|
|
|
|
test.info().annotations.push({
|
|
type: 'info',
|
|
description: `创建按钮:${hasCreateBtn ? '存在' : '不存在'}`,
|
|
});
|
|
|
|
if (hasCreateBtn) {
|
|
// 点击创建按钮
|
|
await createBtn.click();
|
|
await page.waitForTimeout(1000);
|
|
|
|
// 验证弹窗是否打开
|
|
const hasModal = await page.locator('.ant-modal, [class*="modal"]').count() > 0;
|
|
test.info().annotations.push({
|
|
type: 'info',
|
|
description: `创建弹窗:${hasModal ? '打开' : '未打开'}`,
|
|
});
|
|
}
|
|
});
|
|
|
|
test('验证从模板创建任务功能', async ({ page }) => {
|
|
// 导航到任务模板页面
|
|
await clickSubMenu(page, '任务管理', '任务模板');
|
|
|
|
// 等待页面加载
|
|
await page.waitForTimeout(3000);
|
|
|
|
// 查找第一个模板
|
|
const firstTemplate = page.locator('table tbody tr, [class*="template-card"]').first();
|
|
const hasTemplate = await firstTemplate.count() > 0;
|
|
|
|
if (hasTemplate) {
|
|
// 查找使用模板按钮
|
|
const useBtn = page.getByRole('button', { name: /使用 | 应用 | 创建任务/ }).first();
|
|
const hasUseBtn = await useBtn.count() > 0;
|
|
|
|
test.info().annotations.push({
|
|
type: 'info',
|
|
description: `使用模板按钮:${hasUseBtn ? '存在' : '不存在'}`,
|
|
});
|
|
}
|
|
});
|
|
|
|
test('截图保存任务模板状态', async ({ page }) => {
|
|
// 导航到任务模板页面
|
|
await clickSubMenu(page, '任务管理', '任务模板');
|
|
|
|
// 等待页面完全加载
|
|
await page.waitForTimeout(3000);
|
|
|
|
// 截图
|
|
await page.screenshot({ path: 'test-results/teacher-task-templates.png' });
|
|
test.info().annotations.push({
|
|
type: 'success',
|
|
description: '任务模板截图已保存',
|
|
});
|
|
});
|
|
});
|