| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import { buildFormSubmission } from './form-payload';
- import { PAGE_BY_PATH } from './page-catalog';
- describe('form payload adapters', () => {
- it('preserves the feedback save contract and explicitly distinguishes leave requests', () => {
- const meta = PAGE_BY_PATH.get('pages/member/feedback')!;
- for (const requestType of ['feedback', 'leave']) {
- const submission = buildFormSubmission(meta, { name: ' 测试用户 ', content: '申请内容', requestType }, { uid: 7 });
- expect(submission?.action).toBe('guestbook_add');
- expect(JSON.parse(String(submission?.payload['model']))).toEqual({ UserID: 7, Title: `【${requestType === 'leave' ? '休假申请' : '意见反馈'}】测试用户`, TContent: '申请内容', Cateid: 22 });
- }
- });
- it('maps the address form to the legacy address API contract', () => {
- const meta = PAGE_BY_PATH.get('pages/member/receaddr_add')!;
- const submission = buildFormSubmission(meta, {
- ReceivName: '测试用户',
- MobileNum: '13800138000',
- Provinces: '江西省 南昌市 红谷滩区',
- Street: '测试路 1 号',
- Zipcode: '330000',
- }, { uid: 7, id: '9' });
- expect(submission?.action).toBe('receaddr_upd');
- expect(submission?.payload).toEqual(jasmine.objectContaining({
- uid: 7,
- id: '9',
- provinceName: '江西省',
- cityName: '南昌市',
- countyName: '红谷滩区',
- userName: '测试用户',
- telNumber: '13800138000',
- }));
- });
- it('serializes product model and gallery data for the product API', () => {
- const meta = PAGE_BY_PATH.get('pages/member/myshop_add')!;
- const submission = buildFormSubmission(meta, { Proname: '测试商品', Nodeid: 2, pics: '/upload/pic.jpg' }, { uid: 7 });
- expect(submission?.action).toBe('product_add');
- expect(JSON.parse(String(submission?.payload['model']))).toEqual(jasmine.objectContaining({ Proname: '测试商品', Nodeid: 2 }));
- expect(JSON.parse(JSON.parse(String(submission?.payload['addon'])).pics)[0].url).toBe('/upload/pic.jpg');
- });
- it('maps password confirmation fields to the original API names', () => {
- const meta = PAGE_BY_PATH.get('pages/member/passwd')!;
- const submission = buildFormSubmission(meta, { passwd: 'secret123', passwd2: 'secret123', vcode: '123456' }, { uid: 7 });
- expect(submission?.payload).toEqual(jasmine.objectContaining({ newPass: 'secret123', reNewPass: 'secret123', vcode: '123456' }));
- });
- });
|