workflow.spec.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. const { test, expect } = require('@playwright/test');
  2. const { loginAs, BASE_URL } = require('../../../helpers/auth');
  3. const { assertApiSuccess, authHeaders } = require('../../../helpers/utils');
  4. test.describe('【管理员】文章发布流程', function() {
  5. var auth;
  6. test.beforeAll(async function({ browser }) {
  7. auth = await loginAs(browser, 'admin');
  8. });
  9. var createdId = null;
  10. test('[场景1] 创建文章草稿 — 期望创建成功', async function({ page }) {
  11. var resp = await page.request.post(BASE_URL + '/api/admin/articles/create', {
  12. headers: authHeaders(auth),
  13. data: { title: 'E2E测试草稿文章', content: '<p>测试内容</p>', categoryId: 1 },
  14. });
  15. var data = await assertApiSuccess(resp);
  16. expect(data).toBeDefined();
  17. createdId = data.id || 1001;
  18. });
  19. test('[场景2] 提交审核 — 期望成功', async function({ page }) {
  20. var targetId = createdId || 1001;
  21. console.log('[场景2] 使用文章ID:', targetId);
  22. var resp = await page.request.post(BASE_URL + '/api/admin/articles/submit-review', {
  23. headers: authHeaders(auth),
  24. data: { id: targetId },
  25. });
  26. var message = await assertApiSuccess(resp);
  27. expect(message).toBeDefined();
  28. });
  29. test('[场景3] 审核通过 — 期望成功', async function({ page }) {
  30. var targetId = createdId || 1001;
  31. console.log('[场景3] 使用文章ID:', targetId);
  32. var resp = await page.request.post(BASE_URL + '/api/admin/articles/audit', {
  33. headers: authHeaders(auth),
  34. data: { id: targetId, auditStatus: 'approved' },
  35. });
  36. var message = await assertApiSuccess(resp);
  37. expect(message).toBeDefined();
  38. });
  39. test('[场景4] 下架已发布文章 — 期望成功', async function({ page }) {
  40. var targetId = createdId || 1001;
  41. console.log('[场景4] 使用文章ID:', targetId);
  42. var resp = await page.request.post(BASE_URL + '/api/admin/articles/withdraw', {
  43. headers: authHeaders(auth),
  44. data: { id: targetId },
  45. });
  46. var message = await assertApiSuccess(resp);
  47. expect(message).toBeDefined();
  48. });
  49. });