Skip to content

Add unit tests for pure utility functions in useMobileUpload #16

@kanweiwei

Description

@kanweiwei

web/src/hooks/useMobileUpload.ts contains several pure utility functions that are easily testable without any React rendering:

  • formatFileSize() (line 83) — formats bytes to human-readable sizes
  • validateFile() (line 96) — validates file size/type constraints
  • generateFileId() (line 111) — generates unique IDs
  • isFilePickerSupported() (line 122) — checks API support
  • isIOSSafari() (line 129) — browser detection
  • isMobileDevice() (line 141) — mobile detection
  • getMimeTypeFromExtension() (line 217) — MIME type lookup

What to do:

  1. Read web/src/hooks/useMobileUpload.ts and extract the pure functions (or export them)
  2. Create web/src/hooks/__tests__/useMobileUpload.test.ts
  3. Write tests for each function, covering edge cases:
    • formatFileSize(0), negative values, very large values
    • validateFile with oversized files, unsupported types
    • getMimeTypeFromExtension with unknown extensions
  4. Run: pnpm -C web run test -- --run useMobileUpload

Skills needed: TypeScript, Vitest

Estimated time: 1-2 hours

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions