lobe-chat icon indicating copy to clipboard operation
lobe-chat copied to clipboard

✅ test: add unit test for src/store/aiInfra/slices/aiModel/selectors.ts

Open gru-agent[bot] opened this issue 1 week ago • 3 comments

Trigger Info

Trigger Type Triggered By Source File Assignment
Push arvinxx src/store/aiInfra/slices/aiModel/selectors.ts Detail

Summary

This PR introduces comprehensive unit tests for the aiModelSelectors module, ensuring robust validation of its functionality. The tests cover a wide range of scenarios and selector methods, including:

  • Model Filtering and Categorization:

    • aiProviderChatModelListIds: Verifies retrieval of chat-type model IDs.

    • enabledAiProviderModelList and disabledAiProviderModelList: Validate separation of enabled and disabled models.

    • filteredAiProviderModelList: Tests filtering models based on search keywords.

    • totalAiProviderModelList and isEmptyAiProviderModelList: Check total count and emptiness of the model list.

  • Remote Model Detection:

    • hasRemoteModels: Confirms the presence of remote models in the list.
  • Model State Checks:

    • isModelEnabled and isModelLoading: Validate whether a model is enabled or currently loading.
  • Model Retrieval:

    • getAiModelById: Ensures correct retrieval of models by their ID.
  • Capability Checks:

    • isModelSupportToolUse, isModelSupportVision, and isModelSupportReasoning: Verify model support for specific capabilities.
  • Context Window Tokens:

    • isModelHasContextWindowToken and modelContextWindowTokens: Validate the presence and retrieval of context window tokens for models.

The tests utilize a mock state to simulate various scenarios, ensuring the selectors behave as expected under different conditions. This addition significantly enhances the reliability and maintainability of the aiModelSelectors module.

[!TIP] You can @gru-agent and leave your feedback. TestGru will make adjustments based on your input

[!TIP] You can @gru-agent rebase to rebase the PR.

[!TIP] You can @gru-agent redo to reset or rebase before redoing the PR.

[!TIP] To modify the test code yourself, click here Edit Test Code

gru-agent[bot] avatar Feb 13 '25 15:02 gru-agent[bot]