@@ -10,6 +10,7 @@ import { handler as logHandler } from './log';
10
10
import { handler as allUppercaseHandler } from './alluppercase' ;
11
11
import { handler as endsWithHandler } from './endsWith' ;
12
12
import { handler as allLowerCaseHandler } from './alllowercase' ;
13
+ import { handler as modelWhitelistHandler } from './modelWhitelist' ;
13
14
14
15
import { z } from 'zod' ;
15
16
import { PluginContext , PluginParameters } from '../types' ;
@@ -802,3 +803,36 @@ describe('allLowercase handler', () => {
802
803
expect ( result . verdict ) . toBe ( false ) ;
803
804
} ) ;
804
805
} ) ;
806
+
807
+ describe ( 'modelWhitelist handler' , ( ) => {
808
+ it ( 'should return true verdict when the model requested is part of the whitelist' , async ( ) => {
809
+ const context : PluginContext = {
810
+ request : { json : { model : 'gemini-1.5-flash-001' } } ,
811
+ } ;
812
+
813
+ const parameters : PluginParameters = {
814
+ models : [ 'gemini-1.5-flash-001' ] ,
815
+ } ;
816
+ const eventType = 'beforeRequestHook' ;
817
+
818
+ const result = await modelWhitelistHandler ( context , parameters , eventType ) ;
819
+
820
+ expect ( result . error ) . toBe ( null ) ;
821
+ expect ( result . verdict ) . toBe ( true ) ;
822
+ } ) ;
823
+ it ( 'should return false verdict when the model requested is not part of the whitelist' , async ( ) => {
824
+ const context : PluginContext = {
825
+ request : { json : { model : 'gemini-1.5-pro-001' } } ,
826
+ } ;
827
+
828
+ const parameters : PluginParameters = {
829
+ models : [ 'gemini-1.5-flash-001' ] ,
830
+ } ;
831
+ const eventType = 'beforeRequestHook' ;
832
+
833
+ const result = await modelWhitelistHandler ( context , parameters , eventType ) ;
834
+
835
+ expect ( result . error ) . toBe ( null ) ;
836
+ expect ( result . verdict ) . toBe ( false ) ;
837
+ } ) ;
838
+ } ) ;
0 commit comments