api-smoke.spec.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /**
  2. * API 级 e2e 冒烟(远程后端 cfc.iwintrue.com)
  3. * ================================================================
  4. * 目的:一条命令自检「API 级 e2e 链路」是否健康:
  5. * 自注册拿 token → 调核心业务接口 → 断言 code=200。
  6. * 运行:npx playwright test -c playwright.config.api.js --project=desktop
  7. */
  8. const { test, expect } = require('@playwright/test');
  9. const { registerRole, apiPost } = require('../helpers/api');
  10. test.describe('API级冒烟(远程后端)', () => {
  11. let ctx;
  12. test.beforeAll(async ({ request }) => {
  13. ctx = await registerRole(request, 'parent', 'QA-SMOKE');
  14. });
  15. test('自注册链路可用(拿到有效 token)', async () => {
  16. expect(ctx.token.length).toBeGreaterThan(0);
  17. expect(ctx.userId).toBeTruthy();
  18. expect(ctx.familyId).toBeTruthy();
  19. });
  20. test('家庭成员列表接口可调用 (code=200)', async ({ request }) => {
  21. const r = await apiPost(request, '/api/family/member/list', {}, ctx.token);
  22. expect(r.code).toBe(200);
  23. expect(Array.isArray(r.data)).toBeTruthy();
  24. });
  25. test('能量概览接口可调用 (code=200)', async ({ request }) => {
  26. const r = await apiPost(request, '/api/energy/overview', {}, ctx.token);
  27. expect(r.code).toBe(200);
  28. expect(r.data).toBeTruthy();
  29. });
  30. test('成员列表参数校验生效(越权家庭 → 403)', async ({ request }) => {
  31. const r = await apiPost(request, '/api/family/member/list', { familyId: 999999999 }, ctx.token);
  32. expect(r.code).toBe(403);
  33. expect(String(r.message)).toContain('无权访问');
  34. });
  35. });