Archived
feat(desk): 件上保存之后叫醒任务 —— auto 步的配方才有机会按最新草稿铺格
从前只有两条回传路由调 wake;保存不是回传,于是「保存即铺格」永远等不到那一拍。 叫不醒不抬手:保存本身是成功的,不该因为叫不醒把 200 变成 500。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LKMZDwMbyKzjw6Hembwvet
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
import { describe, expect, it } from 'vitest';
|
||||
import { taskIdSchema } from '@contracts';
|
||||
import { afterSave } from '../save-wake.ts';
|
||||
|
||||
const TASK = taskIdSchema.parse('11111111-1111-4111-8111-111111111111');
|
||||
|
||||
function spy() {
|
||||
const calls: string[] = [];
|
||||
return {
|
||||
calls,
|
||||
deps: {
|
||||
views: { repush: () => { calls.push('repush'); return Promise.resolve(true); } },
|
||||
task: { wake: () => { calls.push('wake'); return Promise.resolve(true); } },
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
describe('件上保存之后', () => {
|
||||
it('真落下了行:先重推件,再叫醒任务 —— 配方这才有机会按最新的草稿铺格', async () => {
|
||||
const { calls, deps } = spy();
|
||||
await afterSave(deps, TASK, 3);
|
||||
expect(calls).toEqual(['repush', 'wake']);
|
||||
});
|
||||
|
||||
it('一行都没落下:什么也不做 —— 没变的东西不值得叫醒谁', async () => {
|
||||
const { calls, deps } = spy();
|
||||
await afterSave(deps, TASK, 0);
|
||||
expect(calls).toEqual([]);
|
||||
});
|
||||
|
||||
it('叫醒失败不抬手:保存本身是成功的,别因为叫不醒把 200 变成 500', async () => {
|
||||
const calls: string[] = [];
|
||||
const deps = {
|
||||
views: { repush: () => { calls.push('repush'); return Promise.resolve(true); } },
|
||||
task: { wake: () => Promise.reject(new Error('库连不上')) },
|
||||
};
|
||||
await expect(afterSave(deps, TASK, 1)).resolves.toBeUndefined();
|
||||
expect(calls).toEqual(['repush']);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user