| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- /**
- * SC-P-12 任务频率/周期配置三类流(task.parent.frequency)
- * ================================================================
- * 正常流:创建任务覆盖合法频率 none/daily/weekly/monthly/every_other_day/hourly;
- * 提醒配置读取/保存;
- * 异常流:非法频率/空标题被拒;负积分被拒;
- * 权限流:跨家庭成员创建被拒。
- */
- const { test, expect } = require('@playwright/test');
- const { registerRole, apiPost, uniqueSuffix } = require('../helpers/api');
- test.describe('SC-P-12 任务频率/周期三类流', () => {
- let parent;
- let childA;
- test.beforeAll(async ({ request }) => {
- parent = await registerRole(request, 'parent', 'QA-FREQ');
- const mem = await apiPost(request, '/api/family/member/list', {}, parent.token);
- const self = (mem.data || []).find((m) => String(m.userId) === String(parent.userId));
- const addA = await apiPost(request, '/api/family/member/add', {
- relativeMemberId: self.id, generationLevel: 'child',
- nickname: 'A-Freq' + uniqueSuffix(), gender: 'female', birthday: '2016-09-01',
- }, parent.token);
- expect(addA.code, 'addA: ' + addA.message).toBe(200);
- childA = addA.data.id;
- });
- test('[P-12 正常] 全部合法频率可创建', async ({ request }) => {
- const freqs = ['none', 'daily', 'weekly', 'monthly', 'every_other_day', 'hourly'];
- for (const f of freqs) {
- const r = await apiPost(request, '/api/tasks/create', {
- title: '频率-' + f + uniqueSuffix(), points: 5, memberId: childA, frequency: f, needReview: 0,
- }, parent.token);
- expect(r.code, '创建频率 ' + f + ' 失败: ' + r.message).toBe(200);
- expect(r.data).toBeTruthy();
- }
- });
- test('[P-12 正常] 提醒配置读取与保存', async ({ request }) => {
- const get = await apiPost(request, '/api/task/reminder-config/get', { memberId: childA }, parent.token);
- expect(get.code, 'get: ' + get.message).toBe(200);
- const cur = get.data || {};
- const save = await apiPost(request, '/api/task/reminder-config/save', {
- memberId: childA,
- enabled: cur.enabled === undefined ? true : cur.enabled,
- remindTime: cur.remindTime || '19:30',
- }, parent.token);
- expect(save.code, 'save: ' + save.message).toBe(200);
- });
- test('[P-12-E 异常] 非法频率被拒', async ({ request }) => {
- const r = await apiPost(request, '/api/tasks/create', {
- title: '非法频率' + uniqueSuffix(), points: 5, memberId: childA, frequency: 'fortnightly',
- }, parent.token);
- expect(r.code).not.toBe(200);
- });
- test('[P-12-E 异常] 空标题被拒', async ({ request }) => {
- const r = await apiPost(request, '/api/tasks/create', {
- title: '', points: 5, memberId: childA, frequency: 'daily',
- }, parent.token);
- expect(r.code).not.toBe(200);
- });
- test('[P-12-P 权限] 跨家庭成员创建任务被拒', async ({ request }) => {
- const r = await apiPost(request, '/api/tasks/create', {
- title: '越权频率' + uniqueSuffix(), points: 5, memberId: 999999999, frequency: 'daily',
- }, parent.token);
- expect(r.code).not.toBe(200);
- });
- });
|