mirror of
https://github.com/langgenius/dify.git
synced 2026-03-27 09:09:54 +08:00
Merge remote-tracking branch 'origin/main' into feat/support-agent-sandbox
This commit is contained in:
@ -6,7 +6,7 @@ import type { ToolDefaultValue } from '@/app/components/workflow/block-selector/
|
||||
import type { PanelProps } from '@/types/workflow'
|
||||
import { fireEvent, render, screen } from '@testing-library/react'
|
||||
import userEvent from '@testing-library/user-event'
|
||||
import Toast from '@/app/components/base/toast'
|
||||
import { toast } from '@/app/components/base/ui/toast'
|
||||
import {
|
||||
useTextGenerationCurrentProviderAndModelAndModelList,
|
||||
} from '@/app/components/header/account-setting/model-provider-page/hooks'
|
||||
@ -36,6 +36,15 @@ let mockWorkflowTools: MockToolCollection[] = []
|
||||
let mockSelectedToolInfo: ToolDefaultValue | undefined
|
||||
let mockBlockSelectorOpen = false
|
||||
|
||||
vi.mock('@/app/components/base/ui/toast', () => ({
|
||||
toast: {
|
||||
success: vi.fn(),
|
||||
error: vi.fn(),
|
||||
warning: vi.fn(),
|
||||
info: vi.fn(),
|
||||
},
|
||||
}))
|
||||
|
||||
vi.mock('@/app/components/workflow/block-selector', () => ({
|
||||
__esModule: true,
|
||||
default: ({
|
||||
@ -254,7 +263,7 @@ vi.mock('../use-config', () => ({
|
||||
|
||||
const mockUseTextGeneration = vi.mocked(useTextGenerationCurrentProviderAndModelAndModelList)
|
||||
const mockUseConfig = vi.mocked(useConfig)
|
||||
const mockToastNotify = vi.spyOn(Toast, 'notify').mockImplementation(() => ({}))
|
||||
const mockToastError = vi.mocked(toast.error)
|
||||
|
||||
const createToolParameter = (overrides: Partial<ToolParameter> = {}): ToolParameter => ({
|
||||
name: 'city',
|
||||
@ -356,7 +365,7 @@ const panelProps: PanelProps = {
|
||||
describe('parameter-extractor path', () => {
|
||||
beforeEach(() => {
|
||||
vi.clearAllMocks()
|
||||
mockToastNotify.mockClear()
|
||||
mockToastError.mockClear()
|
||||
mockBuiltInTools = []
|
||||
mockCustomTools = []
|
||||
mockWorkflowTools = []
|
||||
@ -582,7 +591,7 @@ describe('parameter-extractor path', () => {
|
||||
await user.click(screen.getByRole('button', { name: 'common.operation.save' }))
|
||||
|
||||
expect(onSave).not.toHaveBeenCalled()
|
||||
expect(mockToastNotify).toHaveBeenCalled()
|
||||
expect(mockToastError).toHaveBeenCalled()
|
||||
})
|
||||
|
||||
it('should render the add trigger for new parameters', () => {
|
||||
@ -614,7 +623,7 @@ describe('parameter-extractor path', () => {
|
||||
const descriptionInput = screen.getByPlaceholderText('workflow.nodes.parameterExtractor.addExtractParameterContent.descriptionPlaceholder')
|
||||
|
||||
fireEvent.change(nameInput, { target: { value: '1bad' } })
|
||||
expect(mockToastNotify).toHaveBeenCalled()
|
||||
expect(mockToastError).toHaveBeenCalled()
|
||||
expect(nameInput).toHaveValue('')
|
||||
|
||||
fireEvent.change(nameInput, { target: { value: 'temporary_name' } })
|
||||
@ -649,7 +658,7 @@ describe('parameter-extractor path', () => {
|
||||
await user.click(screen.getByRole('button', { name: 'common.operation.save' }))
|
||||
|
||||
expect(onSave).not.toHaveBeenCalled()
|
||||
expect(mockToastNotify).toHaveBeenCalled()
|
||||
expect(mockToastError).toHaveBeenCalled()
|
||||
})
|
||||
|
||||
it('should keep rename metadata and updated options when editing a select parameter', async () => {
|
||||
|
||||
@ -15,7 +15,7 @@ import Modal from '@/app/components/base/modal'
|
||||
import Select from '@/app/components/base/select'
|
||||
import Switch from '@/app/components/base/switch'
|
||||
import Textarea from '@/app/components/base/textarea'
|
||||
import Toast from '@/app/components/base/toast'
|
||||
import { toast } from '@/app/components/base/ui/toast'
|
||||
import { ChangeType } from '@/app/components/workflow/types'
|
||||
import { checkKeys } from '@/utils/var'
|
||||
import { ParamType } from '../../types'
|
||||
@ -54,10 +54,7 @@ const AddExtractParameter: FC<Props> = ({
|
||||
if (key === 'name') {
|
||||
const { isValid, errorKey, errorMessageKey } = checkKeys([value], true)
|
||||
if (!isValid) {
|
||||
Toast.notify({
|
||||
type: 'error',
|
||||
message: t(`varKeyError.${errorMessageKey}`, { ns: 'appDebug', key: errorKey }),
|
||||
})
|
||||
toast.error(t(`varKeyError.${errorMessageKey}`, { ns: 'appDebug', key: errorKey }))
|
||||
return
|
||||
}
|
||||
}
|
||||
@ -106,10 +103,7 @@ const AddExtractParameter: FC<Props> = ({
|
||||
errMessage = t(`${errorI18nPrefix}.fieldRequired`, { ns: 'workflow', field: t(`${i18nPrefix}.addExtractParameterContent.description`, { ns: 'workflow' }) })
|
||||
|
||||
if (errMessage) {
|
||||
Toast.notify({
|
||||
type: 'error',
|
||||
message: errMessage,
|
||||
})
|
||||
toast.error(errMessage)
|
||||
return false
|
||||
}
|
||||
return true
|
||||
|
||||
Reference in New Issue
Block a user