Commit f3404e6a by Archer Committed by GitHub

adapt old version config (#7158)

parent 32701aa3
......@@ -79,20 +79,25 @@ export const InputComponentPropsTypeSchema = z.object({
}), // password
list: z
.array(
z.object({
label: z.string().meta({
description: '变量选项展示名称'
}),
value: z.string().meta({
description: '变量选项实际值'
}),
icon: z.string().optional().meta({
description: '变量选项图标'
}),
description: z.string().optional().meta({
description: '变量选项说明'
z
.object({
label: z.string().optional().meta({
description: '变量选项展示名称'
}),
value: z.string().meta({
description: '变量选项实际值'
}),
icon: z.string().optional().meta({
description: '变量选项图标'
}),
description: z.string().optional().meta({
description: '变量选项说明'
})
})
})
.transform((item) => ({
...item,
label: item.label ?? item.value
}))
)
.optional()
.meta({
......@@ -177,14 +182,19 @@ export const InputComponentPropsTypeSchema = z.object({
enums: z
.array(
z.object({
value: z.string().meta({
description: '枚举项实际值'
}),
label: z.string().meta({
description: '枚举项展示名称'
z
.object({
value: z.string().meta({
description: '枚举项实际值'
}),
label: z.string().optional().meta({
description: '枚举项展示名称'
})
})
})
.transform((item) => ({
...item,
label: item.label ?? item.value
}))
)
.optional()
.meta({
......
import { describe, expect, it } from 'vitest';
import { AppChatConfigTypeSchema } from '@fastgpt/global/core/app/type';
import { VariableInputEnum } from '@fastgpt/global/core/workflow/constants';
describe('AppChatConfigTypeSchema', () => {
it('should adapt old boolean questionGuide format', () => {
......@@ -20,4 +21,30 @@ describe('AppChatConfigTypeSchema', () => {
expect(AppChatConfigTypeSchema.parse({ questionGuide }).questionGuide).toEqual(questionGuide);
});
it('should fill option label with value when variable option label is missing', () => {
const result = AppChatConfigTypeSchema.parse({
variables: [
{
key: 'newSelect',
label: 'New Select',
type: VariableInputEnum.select,
description: '',
list: [{ value: 'option-a' }]
},
{
key: 'legacySelect',
label: 'Legacy Select',
type: VariableInputEnum.select,
description: '',
enums: [{ value: 'legacy-option' }]
}
]
});
expect(result.variables?.[0].list).toEqual([{ label: 'option-a', value: 'option-a' }]);
expect(result.variables?.[1].enums).toEqual([
{ label: 'legacy-option', value: 'legacy-option' }
]);
});
});
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment