feat: 按任务管理比特浏览器临时窗口
This commit is contained in:
@@ -28,8 +28,10 @@ function responseStub() {
|
||||
'获取Cli凭证按钮必须位于获取凭证和链接提取按钮之间');
|
||||
assert.match(html, /Google 账号取号 API[\s\S]{0,2500}googleAccountCredentialForm\.value/,
|
||||
'设置页应提供加密取号 API 配置');
|
||||
assert.match(html, /处理账号数量(1~5000)[\s\S]{0,800}并发(1~30)/,
|
||||
'任务弹窗应同时提供数量和并发');
|
||||
assert.match(html, /处理账号数量(1~5000)[\s\S]{0,800}并发参数(兼容保留)/,
|
||||
'任务弹窗应说明并发参数只为兼容保留');
|
||||
assert.match(html, /临时比特浏览器[\s\S]{0,120}严格按邮箱串行处理:完成一个、删除一个,再开始下一个/,
|
||||
'任务弹窗应告知用户临时比特浏览器严格串行');
|
||||
assert(server.includes("/api/google-account-credentials"), '服务端应挂载取号凭据路由');
|
||||
assert(operations.includes("'google_account_ag_credential'"), '取号任务必须受本机凭据任务保护');
|
||||
assert(operations.includes('importAccountsFromText'), 'Worker 应通过主线程安全导入新账号');
|
||||
@@ -44,15 +46,18 @@ function responseStub() {
|
||||
'链接取号导入账号必须使用默认客户名“企业字-Free”');
|
||||
assert.match(worker, /fetchGoogleAccounts\(\{[\s\S]{0,220}quantity:\s*1/,
|
||||
'每次供应接口调用只能提取 1 个账号');
|
||||
assert(worker.includes('const taskConcurrency = 1;'),
|
||||
'浏览器账号必须固定串行,删除当前临时窗口后再处理下一个');
|
||||
assert(worker.includes('const taskResults = await runConcurrent(taskSlots'),
|
||||
'账号应由用户设定并发数驱动滑动队列,而不是写死固定工位数');
|
||||
'账号应通过滑动队列按顺序处理');
|
||||
const fetchOneAt = worker.indexOf('quantity: 1,');
|
||||
const createBrowserAt = worker.indexOf("createBrowserFromAccount(account, '默认模板'", fetchOneAt);
|
||||
const createBrowserAt = worker.indexOf('taskBrowserLifecycle.run(account', fetchOneAt);
|
||||
const acquireCredentialAt = worker.indexOf("taskType: 'ag_get_credential'", createBrowserAt);
|
||||
assert(fetchOneAt >= 0 && createBrowserAt > fetchOneAt && acquireCredentialAt > createBrowserAt,
|
||||
'每个工位必须按“取 1 个→建浏览器→获取反重力凭证”的顺序处理');
|
||||
assert.match(worker, /browserResult\.reused[\s\S]{0,500}proxyType:\s*'noproxy'/,
|
||||
'复用孤立浏览器时也必须明确切换为无代理');
|
||||
'每个工位必须按“取 1 个→准备临时比特窗口→获取反重力凭证”的顺序处理');
|
||||
const slotTaskEnd = worker.indexOf('}, taskConcurrency', createBrowserAt);
|
||||
assert.match(worker.slice(createBrowserAt, slotTaskEnd), /forceDirect:\s*true/,
|
||||
'取号任务的临时比特窗口必须明确使用直连模式');
|
||||
assert(worker.includes('ATOM_STEPS.ag_get_credential.step'),
|
||||
'取号后必须复用反重力获取凭证步骤');
|
||||
assert(!worker.includes('supplied.raw'), 'Worker 不得记录供应商原始响应');
|
||||
|
||||
Reference in New Issue
Block a user