const { test, expect } = require('@playwright/test'); const { loginAs, BASE_URL } = require('../../helpers/auth'); const { assertApiSuccess, assertApiError, authHeaders } = require('../../helpers/utils'); test.describe('【家长】家庭管理', () => { var auth; test.beforeAll(async ({ browser }) => { auth = await loginAs(browser, 'parent'); }); test('[场景1] 获取关系类型列表 — 期望返回关系类型列表且数据长度大于0', async ({ page }) => { var resp = await page.request.post(BASE_URL + '/api/family/relation-types', { headers: authHeaders(auth), data: {} }); var data = await assertApiSuccess(resp); expect(data).toBeDefined(); expect(Array.isArray(data) ? data.length : Object.keys(data).length).toBeGreaterThan(0); }); test('[场景2] 添加家庭成员 — 期望返回成功', async ({ page }) => { var resp = await page.request.post(BASE_URL + '/api/family/member/add', { headers: authHeaders(auth), data: { userId: 1004, relationType: 'child', familyId: 2001 } }); var data = await assertApiSuccess(resp); expect(data).toBeDefined(); }); test('[场景3] 查看家庭成员列表 — 期望返回成员数组', async ({ page }) => { var resp = await page.request.post(BASE_URL + '/api/family/member/list', { headers: authHeaders(auth), data: { familyId: 2001 } }); var data = await assertApiSuccess(resp); expect(data).toBeDefined(); expect(Array.isArray(data) ? data : []).toBeDefined(); }); test('[场景4] 更新成员关系 — 期望返回成功', async ({ page }) => { var resp = await page.request.post(BASE_URL + '/api/family/member/update', { headers: authHeaders(auth), data: { userId: 1004, relationType: 'child', familyId: 2001 } }); var data = await assertApiSuccess(resp); expect(data).toBeDefined(); }); test('[场景5] 切换到孩子视角 — 期望响应中包含token', async ({ page }) => { var resp = await page.request.post(BASE_URL + '/api/family/member/switch', { headers: authHeaders(auth), data: { userId: 1003 } }); var data = await assertApiSuccess(resp); expect(data).toBeDefined(); expect(data.token || data).toBeDefined(); }); test('[场景6] 移除家庭成员 — 期望返回成功', async ({ page }) => { var resp = await page.request.post(BASE_URL + '/api/family/member/remove', { headers: authHeaders(auth), data: { userId: 1004, familyId: 2001 } }); var data = await assertApiSuccess(resp); expect(data).toBeDefined(); }); test('[场景7] 添加家庭成员失败 — 无效的familyId期望返回错误', async ({ page }) => { var resp = await page.request.post(BASE_URL + '/api/family/member/add', { headers: authHeaders(auth), data: { userId: 1004, relationType: 'child', familyId: 999999 } }); await assertApiError(resp); }); test('[场景8] 切换到不存在的成员视角 — 期望返回错误', async ({ page }) => { var resp = await page.request.post(BASE_URL + '/api/family/member/switch', { headers: authHeaders(auth), data: { userId: 999999 } }); await assertApiError(resp); }); });