diff --git a/src/renderer/src/components/NewWorkspaceComposerCard.file-drop.test.tsx b/src/renderer/src/components/NewWorkspaceComposerCard.file-drop.test.tsx new file mode 100644 index 000000000000..579c495dfdf7 --- /dev/null +++ b/src/renderer/src/components/NewWorkspaceComposerCard.file-drop.test.tsx @@ -0,0 +1,279 @@ +// @vitest-environment happy-dom +import type * as ReactI18nextModule from 'react-i18next' +import { act, renderHook } from '@testing-library/react' +import { useNewWorkspaceComposerFileDrop } from './new-workspace/use-new-workspace-composer-file-drop' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' +import { renderCard, unmountCard } from './NewWorkspaceComposerCard.test-fixture' +import { createRef } from 'react' +import { resolveComposerAttachmentTarget } from '../hooks/composer-state/composer-attachment-target' +import { useAttachmentDropState } from '../hooks/composer-state/attachment-drop-state' +import type { ProjectGroup } from '../../../shared/project-group-types' + +const uploads = vi.hoisted(() => ({ importPaths: vi.fn() })) +vi.mock('@/runtime/runtime-file-client', () => ({ + importExternalPathsToRuntime: uploads.importPaths +})) + +vi.mock('@/store', () => ({ + useAppStore: Object.assign( + (selector: (state: unknown) => unknown) => selector({ settings: {}, projects: [], repos: [] }), + { + getState: () => ({ + sshConnectionStates: connections, + sshStateByEnvironment: runtimeConnections + }) + } + ) +})) +vi.mock('react-i18next', async (importOriginal) => ({ + ...(await importOriginal()), + useTranslation: () => ({}) +})) +vi.mock('@/components/contextual-tours/use-contextual-tour', () => ({ + useContextualTour: () => {} +})) +vi.mock('@/components/sidebar/AddRemoteHostDialog', () => ({ AddRemoteHostDialog: () => null })) +vi.mock('./new-workspace/NewWorkspaceComposerProjectSection', () => ({ + NewWorkspaceComposerProjectSection: () => null +})) +vi.mock('./new-workspace/NewWorkspaceComposerNameSection', () => ({ + NewWorkspaceComposerNameSection: () => null +})) +vi.mock('./new-workspace/NewWorkspaceComposerAgentSection', () => ({ + NewWorkspaceComposerAgentSection: () => null +})) +vi.mock('./new-workspace/NewWorkspaceComposerAdvancedSection', () => ({ + NewWorkspaceComposerAdvancedSection: () => null +})) +vi.mock('./new-workspace/NewWorkspaceComposerFooter', () => ({ + NewWorkspaceComposerFooter: () =>