import { fireEvent, render, screen } from '@testing-library/react' import { vi } from 'vitest' import StatusIndicators from './status-indicators' let installedPlugins = [{ name: 'demo-plugin', plugin_unique_identifier: 'demo@1.0.0' }] vi.mock('@/service/use-plugins', () => ({ useInstalledPluginList: () => ({ data: { plugins: installedPlugins } }), })) vi.mock('@/app/components/base/tooltip', () => ({ default: ({ popupContent }: { popupContent: React.ReactNode }) =>
{popupContent}
, })) vi.mock('@/app/components/workflow/nodes/_base/components/switch-plugin-version', () => ({ SwitchPluginVersion: ({ uniqueIdentifier }: { uniqueIdentifier: string }) =>
{`SwitchVersion:${uniqueIdentifier}`}
, })) const t = (key: string) => key describe('StatusIndicators', () => { beforeEach(() => { vi.clearAllMocks() installedPlugins = [{ name: 'demo-plugin', plugin_unique_identifier: 'demo@1.0.0' }] }) it('should render nothing when model is available and enabled', () => { const { container } = render( , ) expect(container).toBeEmptyDOMElement() }) it('should render warning states when provider model is disabled', () => { const parentClick = vi.fn() const { rerender } = render(
, ) expect(screen.getByText('nodes.agent.modelSelectorTooltips.deprecated')).toBeInTheDocument() rerender(
, ) expect(screen.getByText('nodes.agent.modelNotSupport.title')).toBeInTheDocument() expect(screen.getByText('nodes.agent.linkToPlugin').closest('a')).toHaveAttribute('href', '/plugins') fireEvent.click(screen.getByText('nodes.agent.modelNotSupport.title')) fireEvent.click(screen.getByText('nodes.agent.linkToPlugin')) expect(parentClick).not.toHaveBeenCalled() rerender(
, ) expect(screen.getByText('SwitchVersion:demo@1.0.0')).toBeInTheDocument() }) it('should render marketplace warning when provider is unavailable', () => { render( , ) expect(screen.getByText('nodes.agent.modelNotInMarketplace.title')).toBeInTheDocument() }) })