feat: initial release v0.3.0
This commit is contained in:
67
tests/unit/novel-promotion/video-model-options.test.ts
Normal file
67
tests/unit/novel-promotion/video-model-options.test.ts
Normal file
@@ -0,0 +1,67 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import {
|
||||
filterNormalVideoModelOptions,
|
||||
isFirstLastFrameOnlyModel,
|
||||
supportsFirstLastFrame,
|
||||
} from '@/lib/model-capabilities/video-model-options'
|
||||
import type { VideoModelOption } from '@/lib/novel-promotion/stages/video-stage-runtime/types'
|
||||
|
||||
describe('video model options partition', () => {
|
||||
const models: VideoModelOption[] = [
|
||||
{
|
||||
value: 'p::normal',
|
||||
label: 'normal',
|
||||
capabilities: {
|
||||
video: {
|
||||
generationModeOptions: ['normal'],
|
||||
firstlastframe: false,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
value: 'p::firstlast-only',
|
||||
label: 'firstlast-only',
|
||||
capabilities: {
|
||||
video: {
|
||||
generationModeOptions: ['firstlastframe'],
|
||||
firstlastframe: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
value: 'p::both',
|
||||
label: 'both',
|
||||
capabilities: {
|
||||
video: {
|
||||
generationModeOptions: ['normal', 'firstlastframe'],
|
||||
firstlastframe: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
value: 'p::custom-no-capability',
|
||||
label: 'custom-no-capability',
|
||||
},
|
||||
]
|
||||
|
||||
it('detects firstlastframe support and firstlastframe-only capability', () => {
|
||||
expect(supportsFirstLastFrame(models[0])).toBe(false)
|
||||
expect(supportsFirstLastFrame(models[1])).toBe(true)
|
||||
expect(supportsFirstLastFrame(models[2])).toBe(true)
|
||||
expect(supportsFirstLastFrame(models[3])).toBe(false)
|
||||
|
||||
expect(isFirstLastFrameOnlyModel(models[0])).toBe(false)
|
||||
expect(isFirstLastFrameOnlyModel(models[1])).toBe(true)
|
||||
expect(isFirstLastFrameOnlyModel(models[2])).toBe(false)
|
||||
expect(isFirstLastFrameOnlyModel(models[3])).toBe(false)
|
||||
})
|
||||
|
||||
it('filters out firstlastframe-only models from normal video model list', () => {
|
||||
const normalModels = filterNormalVideoModelOptions(models)
|
||||
expect(normalModels.map((item) => item.value)).toEqual([
|
||||
'p::normal',
|
||||
'p::both',
|
||||
'p::custom-no-capability',
|
||||
])
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user