修改功,现在补齐页面

This commit is contained in:
2026-07-11 21:36:03 +08:00
parent db397a7917
commit a6038be376
143 changed files with 7218 additions and 11912 deletions
+122
View File
@@ -0,0 +1,122 @@
const assert = require('node:assert/strict');
const test = require('node:test');
const GenealogyApi = require('../utils/ApiClient.js');
function createClient() {
return GenealogyApi.createClient({
baseUrl: 'https://api.example.test',
tokenStore: {
getItem() { return null; },
setItem() {},
removeItem() {}
},
axiosInstance: {
request() {
return Promise.resolve({ data: { code: 200, data: {} } });
}
}
});
}
test('API client exposes latest document-defined PC operations', () => {
const client = createClient();
const allowed = [
'clientId', 'tenantId', 'tokenKey', 'getToken', 'setToken', 'clearToken', 'buildApiUrl',
'register', 'login', 'loginBySms', 'sendSmsCode',
'currentProfile', 'updateProfile', 'changePassword', 'resetPassword', 'changePhone',
'deactivateAccount', 'logout', 'uploadFile',
'captchaRequirement', 'captchaChallenge', 'captchaVerify',
'regionChildren', 'regionPath', 'regionSearch', 'regionDetail',
'feeds', 'feedsPage', 'feedDetail', 'createFeed', 'updateFeed', 'deleteFeed',
'likeFeed', 'unlikeFeed', 'feedComments', 'feedCommentsPage', 'createFeedComment',
'deleteFeedComment'
].sort();
assert.deepEqual(Object.keys(client).sort(), allowed);
});
test('password login stores only the returned token', async () => {
let stored = '';
const client = GenealogyApi.createClient({
baseUrl: 'https://api.example.test',
tokenStore: {
getItem() { return stored; },
setItem(_, value) { stored = value; },
removeItem() { stored = ''; }
},
axiosInstance: {
request(config) {
assert.equal(config.method, 'post');
assert.equal(config.url, '/genealogy/pc/auth/login');
assert.equal(config.headers.Authorization, undefined);
return Promise.resolve({ data: { code: 200, data: { accessToken: 'access-token' } } });
}
}
});
await client.login({ phone: '13800000000', password: 'hash' });
assert.equal(client.getToken(), 'access-token');
});
test('sending an SMS code uses the latest documented request fields', async () => {
const client = GenealogyApi.createClient({
baseUrl: 'https://api.example.test',
tokenStore: { getItem() { return null; }, setItem() {}, removeItem() {} },
axiosInstance: {
request(config) {
assert.equal(config.url, '/genealogy/pc/auth/sms/code');
assert.deepEqual(config.data, {
grantType: 'sms',
tenantId: '000000',
clientId: 'ced7e5f0498645c6ec642dcf450b036f',
phone: '13800000000',
sceneCode: 'WEB_H5_LOGIN',
validToken: 'captcha-ticket'
});
return Promise.resolve({ data: { code: 200, data: null } });
}
}
});
await client.sendSmsCode({
phone: '13800000000',
sceneCode: 'WEB_H5_LOGIN',
validToken: 'captcha-ticket'
});
});
test('family feed methods use the documented paths and request bodies', 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: {} } });
}
}
});
await client.createFeed(900001001, {
feedType: 'text',
feedContent: '今天上传一张老照片。',
mediaOssIds: '101,102',
status: '0'
});
await client.feedCommentsPage(900001001, 7001, { pageNum: 1, pageSize: 10 });
await client.deleteFeedComment(900001001, 7001, 8001);
assert.deepEqual(calls.map((config) => [config.method, config.url, config.params, config.data]), [
['post', '/genealogy/pc/genealogies/900001001/feeds', undefined, {
feedType: 'text',
feedContent: '今天上传一张老照片。',
mediaOssIds: '101,102',
status: '0'
}],
['get', '/genealogy/pc/genealogies/900001001/feeds/7001/comments/page', { pageNum: 1, pageSize: 10 }, undefined],
['delete', '/genealogy/pc/genealogies/900001001/feeds/7001/comments/8001', undefined, undefined]
]);
});