fix 一键组合只上传邮箱列表,服务端再从数据库加载完整账号
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
'use strict';
|
||||
|
||||
const assert = require('assert');
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
const root = path.join(__dirname, '..');
|
||||
const appSource = fs.readFileSync(path.join(root, 'public', 'app.js'), 'utf8');
|
||||
const operationsSource = fs.readFileSync(path.join(root, 'src', 'routes', 'operations.js'), 'utf8');
|
||||
const databaseSource = fs.readFileSync(path.join(root, 'src', 'core', 'database.js'), 'utf8');
|
||||
|
||||
assert.match(
|
||||
appSource,
|
||||
/taskType === 'aistudio_combo'[\s\S]{0,300}accountEmails:\s*taskAccounts\.map/,
|
||||
'AI Studio 一键组合必须只提交邮箱引用,不能上传完整账号对象',
|
||||
);
|
||||
assert.match(
|
||||
operationsSource,
|
||||
/taskType === 'aistudio_combo'[\s\S]{0,120}Array\.isArray\(req\.body\.accountEmails\)/,
|
||||
'服务端必须接受 AI Studio 邮箱引用列表',
|
||||
);
|
||||
assert.match(
|
||||
operationsSource,
|
||||
/db\.getAccountsByEmails\(requestedEmails\)/,
|
||||
'服务端必须从数据库重新加载完整账号',
|
||||
);
|
||||
assert.match(
|
||||
databaseSource,
|
||||
/for \(let i = 0; i < normalizedEmails\.length; i \+= 200\)/,
|
||||
'批量账号查询必须分块,避免 SQLite 绑定参数上限',
|
||||
);
|
||||
|
||||
const emailOnlyPayload = {
|
||||
taskType: 'aistudio_combo',
|
||||
accountEmails: Array.from({ length: 10513 }, (_, index) => `account-${index}@example.com`),
|
||||
params: { threadCount: 1 },
|
||||
};
|
||||
assert(
|
||||
Buffer.byteLength(JSON.stringify(emailOnlyPayload), 'utf8') < 10 * 1024 * 1024,
|
||||
'10513 个邮箱的 AI Studio 请求必须低于 10MB',
|
||||
);
|
||||
|
||||
console.log('aistudio large batch request tests passed');
|
||||
Reference in New Issue
Block a user