diff --git a/mobile/src/app/(tabs)/capture.tsx b/mobile/src/app/(tabs)/capture.tsx index c12e026..977c344 100644 --- a/mobile/src/app/(tabs)/capture.tsx +++ b/mobile/src/app/(tabs)/capture.tsx @@ -6,6 +6,8 @@ import { useWorkspaceStore, type WorkspaceState } from '../../store/workspace-st import { OFFLINE_QUEUE_MAX_RETRIES, OFFLINE_QUEUE_MAX_SIZE } from '../../lib/offline-queue'; import { colors } from '../../theme'; +/** File/image uploads should go through `api/blob-upload` (shared `blobClient`) when implemented. */ + export default function CaptureScreen() { const [title, setTitle] = useState(''); const [body, setBody] = useState(''); diff --git a/mobile/src/app/(tabs)/settings.test.tsx b/mobile/src/app/(tabs)/settings.test.tsx new file mode 100644 index 0000000..c63e230 --- /dev/null +++ b/mobile/src/app/(tabs)/settings.test.tsx @@ -0,0 +1,36 @@ +import { beforeEach, describe, expect, it, vi } from 'vitest'; +import React, { isValidElement } from 'react'; + +vi.mock('expo-router', () => ({ + router: { replace: vi.fn() }, +})); + +vi.mock('../../lib/feedback-client', () => ({ + getFeedbackClient: () => ({ + submitWithScreenshot: vi.fn().mockResolvedValue(undefined), + }), +})); + +vi.mock('../../store/auth-store', () => ({ + useAuthStore: (selector: (state: { email: string | null; signOut: () => void }) => unknown) => + selector({ email: 'test@example.com', signOut: vi.fn() }), +})); + +import SettingsScreen from './settings'; + +describe('SettingsScreen', () => { + beforeEach(() => { + vi.clearAllMocks(); + }); + + it('is a valid React component', () => { + expect(typeof SettingsScreen).toBe('function'); + const element = React.createElement(SettingsScreen); + expect(isValidElement(element)).toBe(true); + }); + + it('exports as default', () => { + expect(SettingsScreen).toBeDefined(); + expect(SettingsScreen.name).toBe('SettingsScreen'); + }); +});