mirror of
https://github.com/stablyai/orca.git
synced 2026-10-31 00:57:45 +00:00
45 lines
2.1 KiB
TypeScript
45 lines
2.1 KiB
TypeScript
import { describe, expect, it } from 'vitest'
|
|
import type { NativeChatMessage } from './native-chat-types'
|
|
import { launchDraftResolvedByTranscript } from './native-chat-launch-draft-resolution'
|
|
|
|
function userMessage(id: string, text: string): NativeChatMessage {
|
|
return { id, role: 'user', blocks: [{ type: 'text', text }], timestamp: 1, source: 'transcript' }
|
|
}
|
|
|
|
describe('launchDraftResolvedByTranscript', () => {
|
|
const SEEDED_AT = 100_000
|
|
|
|
it('resolves on undated user turns (Grok omits row timestamps)', () => {
|
|
const undated = { ...userMessage('u1', 'submitted in the TUI'), timestamp: null }
|
|
expect(launchDraftResolvedByTranscript({ createdAt: SEEDED_AT }, [undated])).toBe(true)
|
|
})
|
|
|
|
it('resolves when the executing host clock trails the renderer within the slack', () => {
|
|
// SSH/remote workspaces stamp the JSONL on the other host's clock.
|
|
const behind = { ...userMessage('u1', 'submitted'), timestamp: SEEDED_AT - 1_500 }
|
|
expect(launchDraftResolvedByTranscript({ createdAt: SEEDED_AT }, [behind])).toBe(true)
|
|
})
|
|
|
|
it('resolves past wider clock skew once a new tail user turn lands', () => {
|
|
const stale = { ...userMessage('u1', 'earlier turn'), timestamp: SEEDED_AT - 600_000 }
|
|
const baseline = { userTurnCount: 1, lastUserTurnId: 'u1' }
|
|
expect(launchDraftResolvedByTranscript({ createdAt: SEEDED_AT }, [stale], baseline)).toBe(false)
|
|
|
|
const next = { ...userMessage('u2', 'submitted'), timestamp: SEEDED_AT - 600_000 + 10 }
|
|
expect(launchDraftResolvedByTranscript({ createdAt: SEEDED_AT }, [stale, next], baseline)).toBe(
|
|
true
|
|
)
|
|
})
|
|
|
|
it('does not resolve when "load earlier" only prepends history', () => {
|
|
const tail = { ...userMessage('u9', 'earlier turn'), timestamp: SEEDED_AT - 600_000 }
|
|
const baseline = { userTurnCount: 1, lastUserTurnId: 'u9' }
|
|
const paged = [
|
|
{ ...userMessage('u7', 'older'), timestamp: SEEDED_AT - 900_000 },
|
|
{ ...userMessage('u8', 'older'), timestamp: SEEDED_AT - 800_000 },
|
|
tail
|
|
]
|
|
expect(launchDraftResolvedByTranscript({ createdAt: SEEDED_AT }, paged, baseline)).toBe(false)
|
|
})
|
|
})
|