family-management.spec.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. const { test, expect } = require('@playwright/test');
  2. const { loginAs, BASE_URL } = require('../../helpers/auth');
  3. const { assertApiSuccess, assertApiError, authHeaders } = require('../../helpers/utils');
  4. test.describe('【家长】家庭管理', () => {
  5. var auth;
  6. test.beforeAll(async ({ browser }) => {
  7. auth = await loginAs(browser, 'parent');
  8. });
  9. test('[场景1] 获取关系类型列表 — 期望返回关系类型列表且数据长度大于0', async ({ page }) => {
  10. var resp = await page.request.post(BASE_URL + '/api/family/relation-types', {
  11. headers: authHeaders(auth),
  12. data: {}
  13. });
  14. var data = await assertApiSuccess(resp);
  15. expect(data).toBeDefined();
  16. expect(Array.isArray(data) ? data.length : Object.keys(data).length).toBeGreaterThan(0);
  17. });
  18. test('[场景2] 添加家庭成员 — 期望返回成功', async ({ page }) => {
  19. var resp = await page.request.post(BASE_URL + '/api/family/member/add', {
  20. headers: authHeaders(auth),
  21. data: {
  22. userId: 1004,
  23. relationType: 'child',
  24. familyId: 2001
  25. }
  26. });
  27. var data = await assertApiSuccess(resp);
  28. expect(data).toBeDefined();
  29. });
  30. test('[场景3] 查看家庭成员列表 — 期望返回成员数组', async ({ page }) => {
  31. var resp = await page.request.post(BASE_URL + '/api/family/member/list', {
  32. headers: authHeaders(auth),
  33. data: {
  34. familyId: 2001
  35. }
  36. });
  37. var data = await assertApiSuccess(resp);
  38. expect(data).toBeDefined();
  39. expect(Array.isArray(data) ? data : []).toBeDefined();
  40. });
  41. test('[场景4] 更新成员关系 — 期望返回成功', async ({ page }) => {
  42. var resp = await page.request.post(BASE_URL + '/api/family/member/update', {
  43. headers: authHeaders(auth),
  44. data: {
  45. userId: 1004,
  46. relationType: 'child',
  47. familyId: 2001
  48. }
  49. });
  50. var data = await assertApiSuccess(resp);
  51. expect(data).toBeDefined();
  52. });
  53. test('[场景5] 切换到孩子视角 — 期望响应中包含token', async ({ page }) => {
  54. var resp = await page.request.post(BASE_URL + '/api/family/member/switch', {
  55. headers: authHeaders(auth),
  56. data: {
  57. userId: 1003
  58. }
  59. });
  60. var data = await assertApiSuccess(resp);
  61. expect(data).toBeDefined();
  62. expect(data.token || data).toBeDefined();
  63. });
  64. test('[场景6] 移除家庭成员 — 期望返回成功', async ({ page }) => {
  65. var resp = await page.request.post(BASE_URL + '/api/family/member/remove', {
  66. headers: authHeaders(auth),
  67. data: {
  68. userId: 1004,
  69. familyId: 2001
  70. }
  71. });
  72. var data = await assertApiSuccess(resp);
  73. expect(data).toBeDefined();
  74. });
  75. test('[场景7] 添加家庭成员失败 — 无效的familyId期望返回错误', async ({ page }) => {
  76. var resp = await page.request.post(BASE_URL + '/api/family/member/add', {
  77. headers: authHeaders(auth),
  78. data: {
  79. userId: 1004,
  80. relationType: 'child',
  81. familyId: 999999
  82. }
  83. });
  84. await assertApiError(resp);
  85. });
  86. test('[场景8] 切换到不存在的成员视角 — 期望返回错误', async ({ page }) => {
  87. var resp = await page.request.post(BASE_URL + '/api/family/member/switch', {
  88. headers: authHeaders(auth),
  89. data: {
  90. userId: 999999
  91. }
  92. });
  93. await assertApiError(resp);
  94. });
  95. });