/** * ================================================================ * E2E Test Data Factory - Fixtures Helper * ================================================================ * Creates test data via API calls for Playwright E2E tests * * Usage: * var { createTask, createWish, createAssessmentOrder, getTestData } = require('./helpers/fixtures'); * var task = await createTask(auth, { title: 'Custom Task' }); * var wish = await createWish(auth, { points: 500 }); * var order = await createAssessmentOrder(auth, { packageId: 2 }); * var testData = getTestData(); * ================================================================ */ var { BASE_URL } = require('./auth'); var { authHeaders } = require('./utils'); /** * Create a task via API * @param {Object} auth - Auth object with token * @param {Object} overrides - Optional overrides for default body * @returns {Promise} - Response JSON or error response */ async function createTask(auth, overrides) { var PlaywrightTest = require('@playwright/test'); var page = await PlaywrightTest.request.newContext(); try { var defaultBody = { title: '测试任务', childId: 1003, type: 'daily', deadline: '2099-12-31' }; var body = Object.assign({}, defaultBody, overrides || {}); var response = await page.request.post(BASE_URL + '/api/tasks/create', { headers: authHeaders(auth), data: body }); return await response.json(); } catch (error) { return { code: -1, message: error.message, data: null }; } finally { await page.dispose(); } } /** * Create a wish via API * @param {Object} auth - Auth object with token * @param {Object} overrides - Optional overrides for default body * @returns {Promise} - Response JSON or error response */ async function createWish(auth, overrides) { var PlaywrightTest = require('@playwright/test'); var page = await PlaywrightTest.request.newContext(); try { var defaultBody = { title: '测试心愿', points: 100, childId: 1003 }; var body = Object.assign({}, defaultBody, overrides || {}); var response = await page.request.post(BASE_URL + '/api/wishes/create', { headers: authHeaders(auth), data: body }); return await response.json(); } catch (error) { return { code: -1, message: error.message, data: null }; } finally { await page.dispose(); } } /** * Create an assessment order via API * @param {Object} auth - Auth object with token * @param {Object} overrides - Optional overrides for default body * @returns {Promise} - Response JSON or error response */ async function createAssessmentOrder(auth, overrides) { var PlaywrightTest = require('@playwright/test'); var page = await PlaywrightTest.request.newContext(); try { var defaultBody = { childId: 1003, packageId: 1 }; var body = Object.assign({}, defaultBody, overrides || {}); var response = await page.request.post(BASE_URL + '/api/dan-assessment/order/create', { headers: authHeaders(auth), data: body }); return await response.json(); } catch (error) { return { code: -1, message: error.message, data: null }; } finally { await page.dispose(); } } /** * Get static test data mapping * @returns {Object} - Object containing all test user IDs and family IDs */ function getTestData() { return { parentUserId: 1002, childUserId: 1003, child2UserId: 1004, teacherUserId: 1005, nutritionistUserId: 1006, butlerUserId: 1007, assessorUserId: 1008, vendorUserId: 1009, adminUserId: 1001, familyId: 2001 }; } // ================================================================ // Module exports (CommonJS) // ================================================================ module.exports = { createTask: createTask, createWish: createWish, createAssessmentOrder: createAssessmentOrder, getTestData: getTestData };