import { fireEvent, render, screen, waitFor } from '@testing-library/react'; import { MemoryRouter, Route, Routes } from 'react-router-dom'; import { beforeEach, describe, expect, it, vi } from 'vitest'; import { MainLayout } from '@/components/layout/MainLayout'; import { useOpencodeStore } from '@/stores/opencode'; import { useProjectConfigStore } from '@/stores/project-config'; import { useSettingsStore } from '@/stores/settings'; import { createProjectConfig } from '../../shared/project-config'; const useCurrentUserProfileMock = vi.hoisted(() => vi.fn()); const learningIpcMock = vi.hoisted(() => vi.fn()); const syncProfileNowMock = vi.hoisted(() => vi.fn()); vi.mock('@/hooks/use-current-user-profile', () => ({ useCurrentUserProfile: useCurrentUserProfileMock, })); vi.mock('@/components/profile/UserProfileDialog', () => ({ UserProfileDialog: ({ open, required }: { open: boolean; required?: boolean }) => open ? (
) : null, })); vi.mock('@/components/layout/Sidebar', () => ({ Sidebar: ({ sidebarCollapsedOverride }: { sidebarCollapsedOverride?: boolean }) => (