fix: nullable failure_reason, factory fixture for sft store tests
This commit is contained in:
parent
9c11916d81
commit
137a9dbb8e
2 changed files with 33 additions and 30 deletions
|
|
@ -3,28 +3,31 @@ import { useSftStore } from './sft'
|
||||||
import type { SftQueueItem } from './sft'
|
import type { SftQueueItem } from './sft'
|
||||||
import { beforeEach, describe, it, expect } from 'vitest'
|
import { beforeEach, describe, it, expect } from 'vitest'
|
||||||
|
|
||||||
const MOCK_ITEM: SftQueueItem = {
|
function makeMockItem(overrides: Partial<SftQueueItem> = {}): SftQueueItem {
|
||||||
id: 'abc',
|
return {
|
||||||
source: 'cf-orch-benchmark',
|
id: 'abc',
|
||||||
benchmark_run_id: 'run1',
|
source: 'cf-orch-benchmark',
|
||||||
timestamp: '2026-04-07T10:00:00Z',
|
benchmark_run_id: 'run1',
|
||||||
status: 'needs_review',
|
timestamp: '2026-04-07T10:00:00Z',
|
||||||
prompt_messages: [
|
status: 'needs_review',
|
||||||
{ role: 'system', content: 'You are a coding assistant.' },
|
prompt_messages: [
|
||||||
{ role: 'user', content: 'Write a Python add function.' },
|
{ role: 'system', content: 'You are a coding assistant.' },
|
||||||
],
|
{ role: 'user', content: 'Write a Python add function.' },
|
||||||
model_response: 'def add(a, b): return a - b',
|
],
|
||||||
corrected_response: null,
|
model_response: 'def add(a, b): return a - b',
|
||||||
quality_score: 0.2,
|
corrected_response: null,
|
||||||
failure_reason: 'pattern_match: 0/2 matched',
|
quality_score: 0.2,
|
||||||
task_id: 'code-fn',
|
failure_reason: 'pattern_match: 0/2 matched',
|
||||||
task_type: 'code',
|
task_id: 'code-fn',
|
||||||
task_name: 'Code: Write a Python function',
|
task_type: 'code',
|
||||||
model_id: 'Qwen/Qwen2.5-3B',
|
task_name: 'Code: Write a Python function',
|
||||||
model_name: 'Qwen2.5-3B',
|
model_id: 'Qwen/Qwen2.5-3B',
|
||||||
node_id: 'heimdall',
|
model_name: 'Qwen2.5-3B',
|
||||||
gpu_id: 0,
|
node_id: 'heimdall',
|
||||||
tokens_per_sec: 38.4,
|
gpu_id: 0,
|
||||||
|
tokens_per_sec: 38.4,
|
||||||
|
...overrides,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
describe('useSftStore', () => {
|
describe('useSftStore', () => {
|
||||||
|
|
@ -38,37 +41,37 @@ describe('useSftStore', () => {
|
||||||
|
|
||||||
it('current returns first item', () => {
|
it('current returns first item', () => {
|
||||||
const store = useSftStore()
|
const store = useSftStore()
|
||||||
store.queue = [MOCK_ITEM]
|
store.queue = [makeMockItem()]
|
||||||
expect(store.current?.id).toBe('abc')
|
expect(store.current?.id).toBe('abc')
|
||||||
})
|
})
|
||||||
|
|
||||||
it('removeCurrentFromQueue removes first item', () => {
|
it('removeCurrentFromQueue removes first item', () => {
|
||||||
const store = useSftStore()
|
const store = useSftStore()
|
||||||
const second = { ...MOCK_ITEM, id: 'def' }
|
const second = makeMockItem({ id: 'def' })
|
||||||
store.queue = [MOCK_ITEM, second]
|
store.queue = [makeMockItem(), second]
|
||||||
store.removeCurrentFromQueue()
|
store.removeCurrentFromQueue()
|
||||||
expect(store.queue[0].id).toBe('def')
|
expect(store.queue[0].id).toBe('def')
|
||||||
})
|
})
|
||||||
|
|
||||||
it('restoreItem adds to front of queue', () => {
|
it('restoreItem adds to front of queue', () => {
|
||||||
const store = useSftStore()
|
const store = useSftStore()
|
||||||
const second = { ...MOCK_ITEM, id: 'def' }
|
const second = makeMockItem({ id: 'def' })
|
||||||
store.queue = [second]
|
store.queue = [second]
|
||||||
store.restoreItem(MOCK_ITEM)
|
store.restoreItem(makeMockItem())
|
||||||
expect(store.queue[0].id).toBe('abc')
|
expect(store.queue[0].id).toBe('abc')
|
||||||
expect(store.queue[1].id).toBe('def')
|
expect(store.queue[1].id).toBe('def')
|
||||||
})
|
})
|
||||||
|
|
||||||
it('setLastAction records the action', () => {
|
it('setLastAction records the action', () => {
|
||||||
const store = useSftStore()
|
const store = useSftStore()
|
||||||
store.setLastAction('discard', MOCK_ITEM)
|
store.setLastAction('discard', makeMockItem())
|
||||||
expect(store.lastAction?.type).toBe('discard')
|
expect(store.lastAction?.type).toBe('discard')
|
||||||
expect(store.lastAction?.item.id).toBe('abc')
|
expect(store.lastAction?.item.id).toBe('abc')
|
||||||
})
|
})
|
||||||
|
|
||||||
it('clearLastAction nulls lastAction', () => {
|
it('clearLastAction nulls lastAction', () => {
|
||||||
const store = useSftStore()
|
const store = useSftStore()
|
||||||
store.setLastAction('flag', MOCK_ITEM)
|
store.setLastAction('flag', makeMockItem())
|
||||||
store.clearLastAction()
|
store.clearLastAction()
|
||||||
expect(store.lastAction).toBeNull()
|
expect(store.lastAction).toBeNull()
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ export interface SftQueueItem {
|
||||||
model_response: string
|
model_response: string
|
||||||
corrected_response: string | null
|
corrected_response: string | null
|
||||||
quality_score: number // 0.0 to 1.0
|
quality_score: number // 0.0 to 1.0
|
||||||
failure_reason: string
|
failure_reason: string | null
|
||||||
task_id: string
|
task_id: string
|
||||||
task_type: string
|
task_type: string
|
||||||
task_name: string
|
task_name: string
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue