refactor(web): update frontend toast call sites to use the new shortcut API (#33808)

Signed-off-by: yyh <yuanyouhuilyz@gmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
This commit is contained in:
yyh
2026-03-20 16:02:22 +08:00
committed by GitHub
parent ac87704685
commit 27ed40225d
75 changed files with 391 additions and 706 deletions

View File

@@ -32,9 +32,9 @@ vi.mock('@/service/base', () => ({
ssePost: mockSsePost,
}))
// Mock toast.add because the component reports errors through the UI toast manager.
const { mockToastAdd } = vi.hoisted(() => ({
mockToastAdd: vi.fn(),
// Mock toast.error because the component reports errors through the UI toast manager.
const { mockToastError } = vi.hoisted(() => ({
mockToastError: vi.fn(),
}))
vi.mock('@/app/components/base/ui/toast', async (importOriginal) => {
@@ -43,7 +43,7 @@ vi.mock('@/app/components/base/ui/toast', async (importOriginal) => {
...actual,
toast: {
...actual.toast,
add: mockToastAdd,
error: mockToastError,
},
}
})
@@ -197,7 +197,7 @@ const createDefaultProps = (overrides?: Partial<OnlineDocumentsProps>): OnlineDo
describe('OnlineDocuments', () => {
beforeEach(() => {
vi.clearAllMocks()
mockToastAdd.mockReset()
mockToastError.mockReset()
// Reset store state
mockStoreState.documentsData = []
@@ -515,10 +515,7 @@ describe('OnlineDocuments', () => {
render(<OnlineDocuments {...props} />)
await waitFor(() => {
expect(mockToastAdd).toHaveBeenCalledWith({
type: 'error',
title: 'Something went wrong',
})
expect(mockToastError).toHaveBeenCalledWith('Something went wrong')
})
})
@@ -780,10 +777,7 @@ describe('OnlineDocuments', () => {
render(<OnlineDocuments {...props} />)
await waitFor(() => {
expect(mockToastAdd).toHaveBeenCalledWith({
type: 'error',
title: 'API Error Message',
})
expect(mockToastError).toHaveBeenCalledWith('API Error Message')
})
})
@@ -1100,10 +1094,7 @@ describe('OnlineDocuments', () => {
render(<OnlineDocuments {...props} />)
await waitFor(() => {
expect(mockToastAdd).toHaveBeenCalledWith({
type: 'error',
title: 'Failed to fetch documents',
})
expect(mockToastError).toHaveBeenCalledWith('Failed to fetch documents')
})
// Should still show loading since documentsData is empty

View File

@@ -96,10 +96,7 @@ const OnlineDocuments = ({
setDocumentsData(documentsData.data as DataSourceNotionWorkspace[])
},
onDataSourceNodeError: (error: DataSourceNodeErrorResponse) => {
toast.add({
type: 'error',
title: error.error,
})
toast.error(error.error)
},
},
)

View File

@@ -45,8 +45,8 @@ vi.mock('@/service/use-datasource', () => ({
useGetDataSourceAuth: mockUseGetDataSourceAuth,
}))
const { mockToastAdd } = vi.hoisted(() => ({
mockToastAdd: vi.fn(),
const { mockToastError } = vi.hoisted(() => ({
mockToastError: vi.fn(),
}))
vi.mock('@/app/components/base/ui/toast', async (importOriginal) => {
@@ -55,7 +55,7 @@ vi.mock('@/app/components/base/ui/toast', async (importOriginal) => {
...actual,
toast: {
...actual.toast,
add: mockToastAdd,
error: mockToastError,
},
}
})
@@ -236,7 +236,7 @@ const resetMockStoreState = () => {
describe('OnlineDrive', () => {
beforeEach(() => {
vi.clearAllMocks()
mockToastAdd.mockReset()
mockToastError.mockReset()
// Reset store state
resetMockStoreState()
@@ -547,10 +547,7 @@ describe('OnlineDrive', () => {
render(<OnlineDrive {...props} />)
await waitFor(() => {
expect(mockToastAdd).toHaveBeenCalledWith({
type: 'error',
title: errorMessage,
})
expect(mockToastError).toHaveBeenCalledWith(errorMessage)
})
})
})
@@ -921,10 +918,7 @@ describe('OnlineDrive', () => {
render(<OnlineDrive {...props} />)
await waitFor(() => {
expect(mockToastAdd).toHaveBeenCalledWith({
type: 'error',
title: errorMessage,
})
expect(mockToastError).toHaveBeenCalledWith(errorMessage)
})
})
})

View File

@@ -105,10 +105,7 @@ const OnlineDrive = ({
isLoadingRef.current = false
},
onDataSourceNodeError: (error: DataSourceNodeErrorResponse) => {
toast.add({
type: 'error',
title: error.error,
})
toast.error(error.error)
setIsLoading(false)
isLoadingRef.current = false
},

View File

@@ -6,8 +6,8 @@ import { CrawlStep } from '@/models/datasets'
import { PipelineInputVarType } from '@/models/pipeline'
import Options from '../index'
const { mockToastAdd } = vi.hoisted(() => ({
mockToastAdd: vi.fn(),
const { mockToastError } = vi.hoisted(() => ({
mockToastError: vi.fn(),
}))
vi.mock('@/app/components/base/ui/toast', async (importOriginal) => {
@@ -16,7 +16,7 @@ vi.mock('@/app/components/base/ui/toast', async (importOriginal) => {
...actual,
toast: {
...actual.toast,
add: mockToastAdd,
error: mockToastError,
},
}
})
@@ -131,7 +131,7 @@ const createDefaultProps = (overrides?: Partial<OptionsProps>): OptionsProps =>
describe('Options', () => {
beforeEach(() => {
vi.clearAllMocks()
mockToastAdd.mockReset()
mockToastError.mockReset()
// Reset mock form values
Object.keys(mockFormValues).forEach(key => delete mockFormValues[key])
@@ -643,11 +643,7 @@ describe('Options', () => {
fireEvent.click(screen.getByRole('button'))
// Assert - Toast should be called with error message
expect(mockToastAdd).toHaveBeenCalledWith(
expect.objectContaining({
type: 'error',
}),
)
expect(mockToastError).toHaveBeenCalled()
})
it('should handle validation error and display field name in message', () => {
@@ -665,12 +661,7 @@ describe('Options', () => {
fireEvent.click(screen.getByRole('button'))
// Assert - Toast message should contain field path
expect(mockToastAdd).toHaveBeenCalledWith(
expect.objectContaining({
type: 'error',
title: expect.stringContaining('email_address'),
}),
)
expect(mockToastError).toHaveBeenCalledWith(expect.stringContaining('email_address'))
})
it('should handle empty variables gracefully', () => {
@@ -719,12 +710,8 @@ describe('Options', () => {
fireEvent.click(screen.getByRole('button'))
// Assert - Toast should be called once (only first error)
expect(mockToastAdd).toHaveBeenCalledTimes(1)
expect(mockToastAdd).toHaveBeenCalledWith(
expect.objectContaining({
type: 'error',
}),
)
expect(mockToastError).toHaveBeenCalledTimes(1)
expect(mockToastError).toHaveBeenCalled()
})
it('should handle validation pass when all required fields have values', () => {
@@ -743,7 +730,7 @@ describe('Options', () => {
fireEvent.click(screen.getByRole('button'))
// Assert - No toast error, onSubmit called
expect(mockToastAdd).not.toHaveBeenCalled()
expect(mockToastError).not.toHaveBeenCalled()
expect(mockOnSubmit).toHaveBeenCalled()
})
@@ -840,7 +827,7 @@ describe('Options', () => {
fireEvent.click(screen.getByRole('button'))
expect(mockOnSubmit).toHaveBeenCalled()
expect(mockToastAdd).not.toHaveBeenCalled()
expect(mockToastError).not.toHaveBeenCalled()
})
it('should fail validation with invalid data', () => {
@@ -859,7 +846,7 @@ describe('Options', () => {
fireEvent.click(screen.getByRole('button'))
expect(mockOnSubmit).not.toHaveBeenCalled()
expect(mockToastAdd).toHaveBeenCalled()
expect(mockToastError).toHaveBeenCalled()
})
it('should show error toast message when validation fails', () => {
@@ -876,12 +863,7 @@ describe('Options', () => {
fireEvent.click(screen.getByRole('button'))
expect(mockToastAdd).toHaveBeenCalledWith(
expect.objectContaining({
type: 'error',
title: expect.any(String),
}),
)
expect(mockToastError).toHaveBeenCalledWith(expect.any(String))
})
})

View File

@@ -44,10 +44,7 @@ const Options = ({
const issues = result.error.issues
const firstIssue = issues[0]
const errorMessage = `"${firstIssue.path.join('.')}" ${firstIssue.message}`
toast.add({
type: 'error',
title: errorMessage,
})
toast.error(errorMessage)
return errorMessage
}
return undefined