修改功能

This commit is contained in:
2026-08-29 19:06:07 +08:00
parent f94c652c7c
commit aaed0584b1
142 changed files with 6176 additions and 869 deletions
+59 -4
View File
@@ -56,7 +56,19 @@ test('API client exposes latest document-defined PC operations', () => {
'ceremonyGifts', 'createCeremonyGift', 'deleteCeremony', 'deleteCeremonyGift',
'replaceCeremonyInvitees', 'ceremonyInvitations', 'respondCeremonyInvitation', 'myCeremonyInvitations',
'genealogyMembers', 'genealogyMemberOptions', 'updateGenealogyMember',
'removeGenealogyMember', 'leaveGenealogy', 'transferGenealogyOwner'
'removeGenealogyMember', 'leaveGenealogy', 'transferGenealogyOwner',
'businessDictionary', 'saveGenealogyOrder', 'publicGenealogies', 'genealogyCompleteness',
'archiveGenealogy', 'restoreGenealogy', 'updateGenealogy', 'genealogyProfileReminders',
'issueGenealogyInvitation', 'previewGenealogyInvitation', 'redeemGenealogyInvitation',
'myGenealogyInvitations', 'revokeGenealogyInvitation', 'genealogyDeletionCapability',
'sendGenealogyDeletionCode', 'permanentlyDeleteGenealogy',
'vipCapability', 'vipPaymentStatus', 'closeVipPayment',
'earningSummary', 'earningLedger', 'earningWithdrawals',
'createEarningWithdrawal', 'cancelEarningWithdrawal',
'personDocuments', 'personDocument', 'createPersonDocument', 'updatePersonDocument',
'deletePersonDocument', 'addPersonDocumentResource', 'deletePersonDocumentResource',
'personDocumentResourceAccess', 'protectPersonDocument', 'unlockPersonDocument',
'unprotectPersonDocument'
].sort();
assert.deepEqual(Object.keys(client).sort(), allowed);
@@ -753,7 +765,7 @@ test('feedback methods use the PC collection path and AppFeedbackBody whitelist'
]);
});
test('VIP methods use PC package and order paths with AppVipOrderBody whitelist', async () => {
test('VIP methods use PC native-payment paths with PcVipOrderBody whitelist', async () => {
const calls = [];
const client = GenealogyApi.createClient({
baseUrl: 'https://api.example.test',
@@ -767,6 +779,7 @@ test('VIP methods use PC package and order paths with AppVipOrderBody whitelist'
});
await client.vipPackages();
await client.vipCapability();
await client.createVipOrder({
packageId: '2062179707935264769',
genealogyId: '2062179707935264770',
@@ -778,15 +791,57 @@ test('VIP methods use PC package and order paths with AppVipOrderBody whitelist'
assert.deepEqual(calls.map((config) => [config.method, config.url, config.data]), [
['get', '/genealogy/pc/vip/packages', undefined],
['get', '/genealogy/pc/vip/capability', undefined],
['post', '/genealogy/pc/vip/orders', {
packageId: '2062179707935264769',
genealogyId: '2062179707935264770',
payType: 'wechat'
genealogyId: '2062179707935264770'
}],
['get', '/genealogy/pc/vip/orders', undefined]
]);
});
test('PC closure methods use invitation, reminder, lifecycle, document and earning contracts', async () => {
const calls = [];
const client = GenealogyApi.createClient({
baseUrl: 'https://api.example.test',
tokenStore: { getItem() { return 'access-token'; }, setItem() {}, removeItem() {} },
axiosInstance: {
request(config) {
calls.push(config);
return Promise.resolve({ data: { code: 200, data: [] } });
}
}
});
const genealogyId = '2062179707935264701';
await client.genealogyProfileReminders(genealogyId);
await client.issueGenealogyInvitation(genealogyId, { lineagePersonId: '2062179707935264702', ownerUserId: 'drop' });
await client.genealogyDeletionCapability(genealogyId);
await client.permanentlyDeleteGenealogy(genealogyId, { genealogyName: '叶氏家谱', smsCode: '123456', drop: true });
await client.personDocuments(genealogyId, { lineagePersonId: '2062179707935264702', pageNum: 2 });
await client.createPersonDocument(genealogyId, {
lineagePersonId: '2062179707935264702', documentType: 'id_card', documentTitle: '身份证', drop: true
});
await client.createEarningWithdrawal({
requestId: 'pc-request-1', amount: '88.50', payoutQrOssId: '2062179707935264703',
payoutAccountName: '叶一', accountNo: 'drop'
});
assert.deepEqual(calls.map((config) => [config.method, config.url, config.params, config.data]), [
['get', `/genealogy/pc/genealogies/${genealogyId}/profile-reminders`, undefined, undefined],
['post', `/genealogy/pc/genealogies/${genealogyId}/invitations`, undefined, { lineagePersonId: '2062179707935264702' }],
['get', `/genealogy/pc/genealogies/${genealogyId}/permanent-deletion/capability`, undefined, undefined],
['post', `/genealogy/pc/genealogies/${genealogyId}/permanent-deletion`, undefined, { genealogyName: '叶氏家谱', smsCode: '123456' }],
['get', `/genealogy/pc/genealogies/${genealogyId}/person-documents`, { lineagePersonId: '2062179707935264702' }, undefined],
['post', `/genealogy/pc/genealogies/${genealogyId}/person-documents`, undefined, {
lineagePersonId: '2062179707935264702', documentType: 'id_card', documentTitle: '身份证'
}],
['post', '/genealogy/pc/earnings/withdrawals', undefined, {
requestId: 'pc-request-1', amount: '88.50', payoutQrOssId: '2062179707935264703', payoutAccountName: '叶一'
}]
]);
});
test('notification methods use the current PC list, unread and read paths', async () => {
const calls = [];
const client = GenealogyApi.createClient({