const { test, expect } = require('@playwright/test'); const { loginAs, BASE_URL } = require('../../../helpers/auth'); const { assertApiSuccess, authHeaders } = require('../../../helpers/utils'); test.describe('【管理员】文章发布流程', function() { var auth; test.beforeAll(async function({ browser }) { auth = await loginAs(browser, 'admin'); }); var createdId = null; test('[场景1] 创建文章草稿 — 期望创建成功', async function({ page }) { var resp = await page.request.post(BASE_URL + '/api/admin/articles/create', { headers: authHeaders(auth), data: { title: 'E2E测试草稿文章', content: '

测试内容

', categoryId: 1 }, }); var data = await assertApiSuccess(resp); expect(data).toBeDefined(); createdId = data.id || 1001; }); test('[场景2] 提交审核 — 期望成功', async function({ page }) { var targetId = createdId || 1001; console.log('[场景2] 使用文章ID:', targetId); var resp = await page.request.post(BASE_URL + '/api/admin/articles/submit-review', { headers: authHeaders(auth), data: { id: targetId }, }); var message = await assertApiSuccess(resp); expect(message).toBeDefined(); }); test('[场景3] 审核通过 — 期望成功', async function({ page }) { var targetId = createdId || 1001; console.log('[场景3] 使用文章ID:', targetId); var resp = await page.request.post(BASE_URL + '/api/admin/articles/audit', { headers: authHeaders(auth), data: { id: targetId, auditStatus: 'approved' }, }); var message = await assertApiSuccess(resp); expect(message).toBeDefined(); }); test('[场景4] 下架已发布文章 — 期望成功', async function({ page }) { var targetId = createdId || 1001; console.log('[场景4] 使用文章ID:', targetId); var resp = await page.request.post(BASE_URL + '/api/admin/articles/withdraw', { headers: authHeaders(auth), data: { id: targetId }, }); var message = await assertApiSuccess(resp); expect(message).toBeDefined(); }); });