Files
ComfyUI_frontend/tests-ui/tests/nodeSearchService.test.ts
2024-12-29 16:25:06 -05:00

70 lines
1.7 KiB
TypeScript

// @ts-strict-ignore
import { NodeSearchService } from '@/services/nodeSearchService'
import { ComfyNodeDefImpl } from '@/stores/nodeDefStore'
const EXAMPLE_NODE_DEFS: ComfyNodeDefImpl[] = [
{
input: {
required: {
ckpt_name: [['model1.safetensors', 'model2.ckpt'], {}]
}
},
output: ['MODEL', 'CLIP', 'VAE'],
output_is_list: [false, false, false],
output_name: ['MODEL', 'CLIP', 'VAE'],
name: 'CheckpointLoaderSimple',
display_name: 'Load Checkpoint',
description: '',
python_module: 'nodes',
category: 'loaders',
output_node: false
},
{
input: {
required: {
samples: ['LATENT'],
batch_index: [
'INT',
{
default: 0,
min: 0,
max: 63
}
],
length: [
'INT',
{
default: 1,
min: 1,
max: 64
}
]
}
},
output: ['LATENT'],
output_is_list: [false],
output_name: ['LATENT'],
name: 'LatentFromBatch',
display_name: 'Latent From Batch',
description: '',
python_module: 'nodes',
category: 'latent/batch',
output_node: false
}
].map((nodeDef) => {
const def = new ComfyNodeDefImpl(nodeDef)
def['postProcessSearchScores'] = (s) => s
return def
})
describe('nodeSearchService', () => {
it('searches with input filter', () => {
const service = new NodeSearchService(EXAMPLE_NODE_DEFS)
const inputFilter = service.getFilterById('input')
expect(service.searchNode('L', [[inputFilter, 'LATENT']])).toHaveLength(1)
// Wildcard should match all.
expect(service.searchNode('L', [[inputFilter, '*']])).toHaveLength(2)
expect(service.searchNode('L')).toHaveLength(2)
})
})