| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- 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');
- });
- test('[场景1] 创建文章草稿 — 状态为draft', async function({ page }) {
- var resp = await page.request.post(BASE_URL + '/api/admin/article/create', {
- headers: authHeaders(auth),
- data: { title: 'E2E测试文章', content: '<p>测试内容</p>', categoryId: 1 },
- });
- var data = await assertApiSuccess(resp);
- expect(data.status || 'draft').toBe('draft');
- });
- test('[场景2] 提交审核 — 状态变为pending', async function({ page }) {
- var resp = await page.request.post(BASE_URL + '/api/admin/article/submit-review', {
- headers: authHeaders(auth),
- data: { articleId: 1001 },
- });
- var data = await assertApiSuccess(resp);
- expect(data.status).toBe('pending');
- });
- test('[场景3] 审核通过 — 状态变为published', async function({ page }) {
- var resp = await page.request.post(BASE_URL + '/api/admin/article/approve', {
- headers: authHeaders(auth),
- data: { articleId: 1001 },
- });
- var data = await assertApiSuccess(resp);
- expect(data.status).toBe('published');
- });
- test('[场景4] 下架已发布文章 — 状态变为withdrawn', async function({ page }) {
- var resp = await page.request.post(BASE_URL + '/api/admin/article/withdraw', {
- headers: authHeaders(auth),
- data: { articleId: 1002 },
- });
- var data = await assertApiSuccess(resp);
- expect(data.status).toBe('withdrawn');
- });
- });
|