68 lines
2.2 KiB
TypeScript
68 lines
2.2 KiB
TypeScript
import assert from 'node:assert/strict'
|
|
import { mapBackendSession, mapBackendTask } from './collabSync'
|
|
import { getExecutionTurnId, getLinkedRuntimeTaskId, getWorkItemCardId } from './workItemRuntimeIds'
|
|
|
|
const workItemCard = mapBackendTask({
|
|
task_id: 'wi-1',
|
|
work_item_id: 'wi-1',
|
|
title: 'Prepare launch plan',
|
|
kanban_column: 'in-progress',
|
|
runtime_task_id: 'runtime-task-1',
|
|
execution_turn_id: 'runtime-task-1',
|
|
})
|
|
|
|
assert.equal(getWorkItemCardId(workItemCard), 'wi-1')
|
|
assert.equal(getLinkedRuntimeTaskId(workItemCard), 'runtime-task-1')
|
|
assert.equal(workItemCard.runtimeTaskId, 'runtime-task-1')
|
|
assert.equal(workItemCard.executionTurnId, 'runtime-task-1')
|
|
|
|
const canonicalCard = mapBackendTask({
|
|
work_item_id: 'wi-2',
|
|
title: 'Review launch plan',
|
|
kanban_column: 'in-review',
|
|
runtime_task_id: 'runtime-task-2',
|
|
execution_turn_id: 'runtime-task-2',
|
|
})
|
|
|
|
assert.equal(getWorkItemCardId(canonicalCard), 'wi-2')
|
|
assert.equal(getLinkedRuntimeTaskId(canonicalCard), 'runtime-task-2')
|
|
|
|
const plainTaskCard = mapBackendTask({
|
|
task_id: 'plain-task-1',
|
|
title: 'Plain task',
|
|
kanban_column: 'todo',
|
|
runtime_task_id: 'plain-task-1',
|
|
})
|
|
|
|
assert.equal(plainTaskCard.runtimeTaskId, 'plain-task-1')
|
|
assert.equal(getLinkedRuntimeTaskId(plainTaskCard), '')
|
|
|
|
const runtimeSession = mapBackendSession({
|
|
task_id: 'legacy-task-id',
|
|
runtime_task_id: 'runtime-task-3',
|
|
execution_turn_id: 'turn-3',
|
|
channel_id: 'session:runtime-task-3',
|
|
title: 'CTO Execution Turn',
|
|
})
|
|
|
|
assert.equal(runtimeSession.taskId, 'legacy-task-id')
|
|
assert.equal(runtimeSession.runtimeTaskId, 'runtime-task-3')
|
|
assert.equal(runtimeSession.executionTurnId, 'turn-3')
|
|
assert.equal(getExecutionTurnId(runtimeSession), 'turn-3')
|
|
|
|
const taskSessionWithRuntimeParentMetadata = mapBackendSession({
|
|
project_id: 'default',
|
|
task_id: 'task-mode-session',
|
|
session_id: 'task-session-id',
|
|
parent_session_id: 'task-session-id',
|
|
channel_id: 'session:task-mode-session',
|
|
title: 'Task mode session detail',
|
|
exec_mode: 'task',
|
|
})
|
|
|
|
assert.equal(taskSessionWithRuntimeParentMetadata.execMode, 'task')
|
|
assert.equal(taskSessionWithRuntimeParentMetadata.mode, 'primary')
|
|
assert.equal(taskSessionWithRuntimeParentMetadata.parentSessionId, undefined)
|
|
|
|
console.log('workItemRuntimeIds alias checks passed')
|