fix(qdreader): treat duplicate sign and unsupported optional tasks correctly
This commit is contained in:
@@ -640,3 +640,61 @@ test('account task menu supports one-click enable and disable all optional tasks
|
||||
assert.equal(disabled.chapterCard, false);
|
||||
assert.equal(disabled.messageBox, false);
|
||||
});
|
||||
|
||||
|
||||
test('already signed checkin is treated as success', () => {
|
||||
const store = {
|
||||
qdreader_cookie_json: JSON.stringify({ '12345': cookie }),
|
||||
qdreader_user_bind_json: JSON.stringify({ '12345': 'user-a' }),
|
||||
};
|
||||
const r = runPlugin({
|
||||
content: '启点签到',
|
||||
store,
|
||||
userId: 'user-a',
|
||||
requests: [
|
||||
{ body: { code: 0, data: { headers: { 'QD-Sign': 'sig' } } } },
|
||||
{ statusCode: 200, body: { code: 1, msg: '今日已签到' } },
|
||||
{ body: { code: 0, data: { headers: { 'QD-Sign': 'sig' } } } },
|
||||
{ statusCode: 200, body: { code: 0, msg: '完成' } },
|
||||
],
|
||||
});
|
||||
assert.match(r.replies[0], /签到结果✅\(今日已签到\)/);
|
||||
assert.match(r.replies[0], /汇总:成功 1 \/ 失败 0 \/ 总计 1/);
|
||||
const archive = JSON.parse(r.store.qdreader_archive_json);
|
||||
const log = archive[Object.keys(archive)[0]];
|
||||
assert.equal(log.okCount, 1);
|
||||
assert.equal(log.failCount, 0);
|
||||
});
|
||||
|
||||
test('sign gateway whitelist blocked optional tasks are skipped not counted as account failure', () => {
|
||||
const store = {
|
||||
qdreader_cookie_json: JSON.stringify({ '12345': cookie }),
|
||||
qdreader_user_bind_json: JSON.stringify({ '12345': 'user-a' }),
|
||||
qdreader_task_pref_json: JSON.stringify({ '12345': { extraAdv: true, lottery: true, chapterCard: true, messageBox: true } }),
|
||||
};
|
||||
const blocked = { body: { code: 444, message: '参数异常: url 不在允许的接口列表内' } };
|
||||
const r = runPlugin({
|
||||
content: '启点签到',
|
||||
store,
|
||||
userId: 'user-a',
|
||||
requests: [
|
||||
{ body: { code: 0, data: { headers: { 'QD-Sign': 'sig' } } } },
|
||||
{ statusCode: 200, body: { code: 1, msg: '今日已签到' } },
|
||||
{ body: { code: 0, data: { headers: { 'QD-Sign': 'sig' } } } },
|
||||
{ statusCode: 200, body: { code: 0, msg: '完成' } },
|
||||
blocked,
|
||||
blocked,
|
||||
blocked,
|
||||
blocked,
|
||||
],
|
||||
});
|
||||
assert.match(r.replies[0], /每日任务⏭\(签名网关暂不支持该接口,已跳过\)/);
|
||||
assert.match(r.replies[0], /每日抽奖⏭/);
|
||||
assert.match(r.replies[0], /章节卡片⏭/);
|
||||
assert.match(r.replies[0], /大咖荐书⏭/);
|
||||
assert.match(r.replies[0], /汇总:成功 1 \/ 失败 0 \/ 总计 1/);
|
||||
const archive = JSON.parse(r.store.qdreader_archive_json);
|
||||
const log = archive[Object.keys(archive)[0]];
|
||||
assert.equal(log.okCount, 1);
|
||||
assert.equal(log.failCount, 0);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user