feat(qdreader): store task switches per account
This commit is contained in:
@@ -509,7 +509,7 @@ test('delete account uses numbered selection instead of uid input', () => {
|
||||
qdreader_user_bind_json: JSON.stringify({ '12345': 'user-a', '67890': 'user-a' }),
|
||||
qdreader_remark_json: JSON.stringify({ '12345': '主号', '67890': '副号' }),
|
||||
};
|
||||
const r = runPlugin({ content: '启点账号', store, userId: 'user-a', listens: ['4', '2'] });
|
||||
const r = runPlugin({ content: '启点账号', store, userId: 'user-a', listens: ['5', '2'] });
|
||||
assert.match(r.replies[1], /请选择要删除的账号/);
|
||||
assert.match(r.replies[1], /1\. 12\*\*\*45/);
|
||||
assert.match(r.replies[1], /2\. 67\*\*\*90/);
|
||||
@@ -523,7 +523,7 @@ test('delete all command clears only current user saved cookies', () => {
|
||||
qdreader_user_bind_json: JSON.stringify({ '12345': 'user-a', '67890': 'user-b' }),
|
||||
qdreader_remark_json: JSON.stringify({ '12345': '主号', '67890': '副号' }),
|
||||
};
|
||||
const r = runPlugin({ content: '启点账号', store, userId: 'user-a', listens: ['5'] });
|
||||
const r = runPlugin({ content: '启点账号', store, userId: 'user-a', listens: ['6'] });
|
||||
assert.match(r.replies[0], /启点账号管理/);
|
||||
assert.match(r.replies[1], /已删除全部/);
|
||||
assert.deepEqual(JSON.parse(r.store.qdreader_cookie_json), { '67890': cookie.replace(/12345/g, '67890') });
|
||||
@@ -570,19 +570,46 @@ test('user cannot overwrite another user bound cookie', () => {
|
||||
assert.equal(JSON.parse(r.store.qdreader_user_bind_json)['12345'], '987654321');
|
||||
});
|
||||
|
||||
test('task menu toggles full task switches and enabled tasks are called', () => {
|
||||
test('account task menu stores full task switches per account and sign uses selected account prefs', () => {
|
||||
const store = {
|
||||
qdreader_cookie_json: JSON.stringify({ '12345': cookie }),
|
||||
qdreader_user_bind_json: JSON.stringify({ '12345': 'user-a' }),
|
||||
};
|
||||
const menu = runPlugin({ content: '启点任务', store: { ...store }, userId: 'user-a', listens: ['2 on'] });
|
||||
assert.match(menu.replies[0], /激励任务:关闭/);
|
||||
assert.match(menu.replies[1], /激励任务已开启/);
|
||||
assert.equal(menu.store.qdreader_adv_job_enable, 'true');
|
||||
const menu = runPlugin({ content: '启点账号', store: { ...store }, userId: 'user-a', listens: ['4', '1', '2 on'] });
|
||||
assert.match(menu.replies[0], /账号任务配置/);
|
||||
assert.match(menu.replies[1], /请选择要配置任务的账号/);
|
||||
assert.match(menu.replies[2], /激励任务:关闭/);
|
||||
assert.match(menu.replies[3], /激励任务已开启/);
|
||||
assert.equal(JSON.parse(menu.store.qdreader_task_pref_json)['12345'].adv, true);
|
||||
assert.equal(menu.store.qdreader_adv_job_enable, undefined);
|
||||
|
||||
const sign = runPlugin({ content: '启点签到', store: { ...store, qdreader_adv_job_enable: 'true' }, userId: 'user-a' });
|
||||
const sign = runPlugin({ content: '启点签到', store: { ...store, qdreader_task_pref_json: JSON.stringify({ '12345': { adv: true } }) }, userId: 'user-a' });
|
||||
assert.equal(sign.calls.length, 6);
|
||||
assert.match(sign.calls[3].url, /getcurrentweekcheckininfo$/);
|
||||
assert.match(sign.calls[5].url, /video\/adv\/mainPage$/);
|
||||
assert.match(sign.replies[0], /激励任务/);
|
||||
});
|
||||
|
||||
|
||||
test('per-account task switches do not affect other accounts', () => {
|
||||
const store = {
|
||||
qdreader_cookie_json: JSON.stringify({ '12345': cookie, '67890': cookie.replace(/12345/g, '67890') }),
|
||||
qdreader_user_bind_json: JSON.stringify({ '12345': 'user-a', '67890': 'user-a' }),
|
||||
qdreader_task_pref_json: JSON.stringify({ '12345': { adv: true }, '67890': {} }),
|
||||
};
|
||||
const sign = runPlugin({ content: '启点签到', store, userId: 'user-a' });
|
||||
// account 12345: sign + reward + adv = 6 calls; account 67890: sign + reward = 4 calls
|
||||
assert.equal(sign.calls.length, 10);
|
||||
assert.equal(sign.calls.filter((c) => /video\/adv\/mainPage$/.test(c.url)).length, 1);
|
||||
});
|
||||
|
||||
test('delete account also clears per-account task prefs', () => {
|
||||
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', listens: ['5', '1'] });
|
||||
assert.match(r.replies[2], /已删除 uid: 12345/);
|
||||
assert.deepEqual(JSON.parse(r.store.qdreader_task_pref_json), {});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user