lobe-chat
lobe-chat copied to clipboard
✅ test: add unit test for src/store/aiInfra/slices/aiModel/selectors.ts
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
anddisabledAiProviderModelList
: Validate separation of enabled and disabled models. -
filteredAiProviderModelList
: Tests filtering models based on search keywords. -
totalAiProviderModelList
andisEmptyAiProviderModelList
: 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
andisModelLoading
: Validate whether a model is enabled or currently loading.
-
-
Model Retrieval:
-
getAiModelById
: Ensures correct retrieval of models by their ID.
-
-
Capability Checks:
-
isModelSupportToolUse
,isModelSupportVision
, andisModelSupportReasoning
: Verify model support for specific capabilities.
-
-
Context Window Tokens:
-
isModelHasContextWindowToken
andmodelContextWindowTokens
: 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