1
+ import { handleAddModelSubmit } from '../../../ui/litellm-dashboard/src/components/add_model/handle_add_model_submit' ;
2
+ import { modelCreateCall } from '../../../ui/litellm-dashboard/src/components/networking' ;
3
+
4
+ // Mock the dependencies
5
+ const mockModelCreateCall = jest . fn ( ) . mockResolvedValue ( { data : 'success' } ) ;
6
+ jest . mock ( '../../../ui/litellm-dashboard/src/components/networking' , ( ) => ( {
7
+ modelCreateCall : async ( accessToken : string , formValues : any ) => mockModelCreateCall ( formValues )
8
+ } ) ) ;
9
+
10
+ // Also need to mock provider_map
11
+ jest . mock ( '../../../ui/litellm-dashboard/src/components/provider_info_helpers' , ( ) => ( {
12
+ provider_map : {
13
+ 'openai' : 'openai'
14
+ }
15
+ } ) ) ;
16
+
17
+ jest . mock ( 'antd' , ( ) => ( {
18
+ message : {
19
+ error : jest . fn ( )
20
+ }
21
+ } ) ) ;
22
+
23
+ describe ( 'handleAddModelSubmit' , ( ) => {
24
+ const mockForm = {
25
+ resetFields : jest . fn ( )
26
+ } ;
27
+ const mockAccessToken = 'test-token' ;
28
+
29
+ beforeEach ( ( ) => {
30
+ jest . clearAllMocks ( ) ;
31
+ mockModelCreateCall . mockClear ( ) ;
32
+ } ) ;
33
+
34
+ it ( 'should not modify model name when all-wildcard is not selected' , async ( ) => {
35
+ const formValues = {
36
+ model : 'gpt-4' ,
37
+ custom_llm_provider : 'openai' ,
38
+ model_name : 'my-gpt4-deployment'
39
+ } ;
40
+
41
+ await handleAddModelSubmit ( formValues , mockAccessToken , mockForm ) ;
42
+
43
+ console . log ( 'Expected call:' , {
44
+ model_name : 'my-gpt4-deployment' ,
45
+ litellm_params : {
46
+ model : 'gpt-4' ,
47
+ custom_llm_provider : 'openai'
48
+ } ,
49
+ model_info : { }
50
+ } ) ;
51
+ console . log ( 'Actual calls:' , mockModelCreateCall . mock . calls ) ;
52
+
53
+ expect ( mockModelCreateCall ) . toHaveBeenCalledWith ( {
54
+ model_name : 'my-gpt4-deployment' ,
55
+ litellm_params : {
56
+ model : 'gpt-4' ,
57
+ custom_llm_provider : 'openai'
58
+ } ,
59
+ model_info : { }
60
+ } ) ;
61
+ expect ( mockForm . resetFields ) . toHaveBeenCalled ( ) ;
62
+ } ) ;
63
+
64
+ it ( 'should handle all-wildcard model correctly' , async ( ) => {
65
+ const formValues = {
66
+ model : 'all-wildcard' ,
67
+ custom_llm_provider : 'openai' ,
68
+ model_name : 'my-deployment'
69
+ } ;
70
+
71
+ await handleAddModelSubmit ( formValues , mockAccessToken , mockForm ) ;
72
+
73
+ expect ( mockModelCreateCall ) . toHaveBeenCalledWith ( {
74
+ model_name : 'openai/*' ,
75
+ litellm_params : {
76
+ model : 'openai/*' ,
77
+ custom_llm_provider : 'openai'
78
+ } ,
79
+ model_info : { }
80
+ } ) ;
81
+ expect ( mockForm . resetFields ) . toHaveBeenCalled ( ) ;
82
+ } ) ;
83
+ } ) ;
0 commit comments