fix(qdreader): discover shifted task lists
This commit is contained in:
@@ -1245,6 +1245,43 @@ test('adv task ignores count metadata and submits each unfinished upstream task
|
||||
assert.ok(finishCalls.every(c => /partial-task/.test(c.body)));
|
||||
});
|
||||
|
||||
test('adv task accepts discovered task list when upstream module name changes', () => {
|
||||
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': { adv: true } }),
|
||||
};
|
||||
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: 1, msg: '无可领取礼包' } },
|
||||
{ body: { code: 0, data: { headers: { 'QD-Sign': 'sig' } } } },
|
||||
{ statusCode: 200, body: { code: 0, Data: { WelfareCenter: { AdvTasks: [
|
||||
{ TaskId: 'new-adv-a', Title: '激励碎片', IsFinished: 0 },
|
||||
{ TaskId: 'new-adv-b', Title: '广告福利', IsFinished: 0 },
|
||||
] } } } },
|
||||
{ body: { code: 0, data: { headers: { 'QD-Sign': 'sig' } } } },
|
||||
{ statusCode: 200, body: { result: 9, message: '' } },
|
||||
{ body: { code: 0, data: { headers: { 'QD-Sign': 'sig' } } } },
|
||||
{ statusCode: 200, body: { result: 9, message: '' } },
|
||||
{ body: { code: 0, data: { headers: { 'QD-Sign': 'sig' } } } },
|
||||
{ statusCode: 200, body: { code: 0, Data: { WelfareCenter: { AdvTasks: [
|
||||
{ TaskId: 'new-adv-a', Title: '激励碎片', IsFinished: 1 },
|
||||
{ TaskId: 'new-adv-b', Title: '广告福利', IsFinished: 1 },
|
||||
] } } } },
|
||||
],
|
||||
});
|
||||
assert.match(r.replies[0], /激励任务✅\(任务已完成\)/);
|
||||
assert.doesNotMatch(r.replies[0], /任务列表为空/);
|
||||
assert.equal(r.calls.filter(c => /video\/adv\/finishWatch$/.test(c.url)).length, 2);
|
||||
});
|
||||
|
||||
|
||||
test('daily task follows upstream sequence: surprise task, one-ad task, then three daily ad callbacks', () => {
|
||||
const store = {
|
||||
qdreader_cookie_json: JSON.stringify({ '12345': cookie }),
|
||||
@@ -1294,6 +1331,54 @@ test('daily task follows upstream sequence: surprise task, one-ad task, then thr
|
||||
});
|
||||
|
||||
|
||||
test('daily task accepts discovered reward list when upstream module name changes', () => {
|
||||
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 } }),
|
||||
};
|
||||
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: 1, msg: '无可领取礼包' } },
|
||||
{ body: { code: 0, data: { headers: { 'QD-Sign': 'sig' } } } },
|
||||
{ statusCode: 200, body: { code: 0, Data: {
|
||||
RewardModules: { DailyAd: [
|
||||
{ TaskId: 'new-one-ad', Title: '完成1个广告任务得奖励', IsReceived: 0 },
|
||||
{ TaskId: 'new-three-ad', Title: '完成3个广告任务得奖励', IsReceived: 0 },
|
||||
] }
|
||||
} } },
|
||||
{ body: { code: 0, data: { headers: { 'QD-Sign': 'sig' } } } },
|
||||
{ statusCode: 200, body: { result: 9, message: '' } },
|
||||
{ body: { code: 0, data: { headers: { 'QD-Sign': 'sig' } } } },
|
||||
{ statusCode: 200, body: { result: 9, message: '' } },
|
||||
{ body: { code: 0, data: { headers: { 'QD-Sign': 'sig' } } } },
|
||||
{ statusCode: 200, body: { result: 9, message: '' } },
|
||||
{ body: { code: 0, data: { headers: { 'QD-Sign': 'sig' } } } },
|
||||
{ statusCode: 200, body: { result: 9, message: '' } },
|
||||
{ body: { code: 0, data: { headers: { 'QD-Sign': 'sig' } } } },
|
||||
{ statusCode: 200, body: { code: 0, Data: {
|
||||
RewardModules: { DailyAd: [
|
||||
{ TaskId: 'new-one-ad', Title: '完成1个广告任务得奖励', IsReceived: 1 },
|
||||
{ TaskId: 'new-three-ad', Title: '完成3个广告任务得奖励', IsReceived: 1 },
|
||||
] }
|
||||
} } },
|
||||
],
|
||||
});
|
||||
assert.match(r.replies[0], /每日任务✅\(任务已完成\)/);
|
||||
assert.doesNotMatch(r.replies[0], /任务列表为空/);
|
||||
const bodies = r.calls.filter(c => /video\/adv\/finishWatch$/.test(c.url)).map(c => c.body);
|
||||
assert.equal(bodies.length, 4);
|
||||
assert.match(bodies[0], /new-one-ad/);
|
||||
assert.equal(bodies.filter(b => /new-three-ad/.test(b)).length, 3);
|
||||
});
|
||||
|
||||
|
||||
test('message box runs outside former Beijing 20-22 window and calls message API', () => {
|
||||
const store = {
|
||||
qdreader_cookie_json: JSON.stringify({ '12345': cookie }),
|
||||
|
||||
Reference in New Issue
Block a user