mirror of
https://github.com/deepseek-ai/deepseek-harness
synced 2026-08-15 21:04:50 +00:00
test(session): cover the turn/end step invariant and content shape guard
- invariant.spec: a turn/end whose step does not match the last opened step fails with 'expected last step'. - session.spec: a seed message whose content is not an array fails with 'message has invalid content'.
This commit is contained in:
@@ -131,6 +131,13 @@ describe('session-log invariants', () => {
|
||||
expect(() => second.append('turn/start', { turn: 3 }))
|
||||
.toThrow(/expected turn 2, got 3/)
|
||||
|
||||
const third = (await setup()).ctx.sessions.create()
|
||||
third.append('turn/start', { turn: 1 })
|
||||
third.append('step/start', { turn: 1, step: 1 })
|
||||
third.append('step/end', { turn: 1, step: 1 })
|
||||
expect(() => third.append('turn/end', { turn: 1, step: 2, reason: { kind: 'completed' } }))
|
||||
.toThrow(/expected last step 1, got 2/)
|
||||
|
||||
const outside = (await setup()).ctx.sessions.create()
|
||||
expect(() => outside.append('user/message', createUserMessage({
|
||||
content: [{ type: 'text', text: 'idle context' }],
|
||||
|
||||
@@ -232,6 +232,14 @@ describe('Session', () => {
|
||||
},
|
||||
message: 'message has invalid source',
|
||||
},
|
||||
{
|
||||
name: 'content shape',
|
||||
event: {
|
||||
type: 'user/message', seq: 0, time: 1, surfaceOp: 'append',
|
||||
data: { ...user, content: 'not-an-array' },
|
||||
},
|
||||
message: 'message has invalid content',
|
||||
},
|
||||
{
|
||||
name: 'assistant source',
|
||||
event: {
|
||||
|
||||
Reference in New Issue
Block a user