fix: nullable failure_reason, factory fixture for sft store tests

This commit is contained in:
pyr0ball 2026-04-08 15:14:29 -07:00
parent 9c11916d81
commit 137a9dbb8e
2 changed files with 33 additions and 30 deletions

View file

@ -3,7 +3,8 @@ 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 {
return {
id: 'abc', id: 'abc',
source: 'cf-orch-benchmark', source: 'cf-orch-benchmark',
benchmark_run_id: 'run1', benchmark_run_id: 'run1',
@ -25,6 +26,8 @@ const MOCK_ITEM: SftQueueItem = {
node_id: 'heimdall', node_id: 'heimdall',
gpu_id: 0, gpu_id: 0,
tokens_per_sec: 38.4, 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()
}) })

View file

@ -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