Commit Graph

1 Commits

  • fix(providers): preserve custom endpoints in meta during add/edit operations
    Fixed two critical data loss bugs where user-added custom endpoints were discarded:
    
    1. **AddProviderDialog**: Form submission ignored values.meta from ProviderForm and
       re-inferred URLs only from presets/config, causing loss of endpoints added via
       speed test modal. Now prioritizes form-collected meta and uses fallback inference
       only when custom_endpoints is missing.
    
    2. **ProviderForm**: Edit mode always returned initialData.meta, discarding any
       changes made in the speed test modal. Now uses mergeProviderMeta to properly
       merge customEndpointsMap with existing meta fields.
    
    Changes:
    - Extract mergeProviderMeta utility to handle meta field merging logic
    - Preserve other meta fields (e.g., usage_script) during endpoint updates
    - Unify new/edit code paths to use consistent meta handling
    - Add comprehensive unit tests for meta merging scenarios
    - Add integration tests for AddProviderDialog submission flow
    
    Impact:
    - Third-party and custom providers can now reliably manage multiple endpoints
    - Edit operations correctly reflect user modifications
    - No data loss for existing meta fields like usage_script