@@ -693,6 +693,66 @@ describe("KdbDataSourceView", () => {
693693 assert . strictEqual ( requestChangeSpy . calledOnce , true ) ;
694694 } ) ;
695695 } ) ;
696+
697+ describe ( "handleUDAChange" , ( ) => {
698+ it ( "should update selectedUDA with the decoded value from the event" , ( ) => {
699+ const event = {
700+ target : {
701+ value : encodeURIComponent ( "testUDA" ) ,
702+ } ,
703+ } as unknown as Event ;
704+
705+ view . handleUDAChange ( event ) ;
706+ assert . strictEqual ( view . selectedUDA , "testUDA" ) ;
707+ } ) ;
708+
709+ it ( "should update userSelectedUDA with the corresponding UDA from the list" , ( ) => {
710+ const dummyUDA = {
711+ name : "testUDA" ,
712+ description : "test description" ,
713+ params : [ ] ,
714+ return : {
715+ type : [ "99" ] ,
716+ description : "test return description" ,
717+ } ,
718+ } ;
719+ view . UDAs = [ dummyUDA ] ;
720+
721+ const event = {
722+ target : {
723+ value : encodeURIComponent ( "testUDA" ) ,
724+ } ,
725+ } as unknown as Event ;
726+
727+ view . handleUDAChange ( event ) ;
728+ assert . deepStrictEqual ( view . userSelectedUDA , dummyUDA ) ;
729+ } ) ;
730+
731+ it ( "should set userSelectedUDA to undefined if no matching UDA is found" , ( ) => {
732+ view . UDAs = [ ] ;
733+
734+ const event = {
735+ target : {
736+ value : encodeURIComponent ( "nonexistentUDA" ) ,
737+ } ,
738+ } as unknown as Event ;
739+
740+ view . handleUDAChange ( event ) ;
741+ assert . strictEqual ( view . userSelectedUDA , undefined ) ;
742+ } ) ;
743+
744+ it ( "should call requestChange" , ( ) => {
745+ const event = {
746+ target : {
747+ value : encodeURIComponent ( "testUDA" ) ,
748+ } ,
749+ } as unknown as Event ;
750+
751+ const requestChangeSpy = sinon . spy ( view , "requestChange" ) ;
752+ view . handleUDAChange ( event ) ;
753+ assert . strictEqual ( requestChangeSpy . calledOnce , true ) ;
754+ } ) ;
755+ } ) ;
696756 } ) ;
697757
698758 describe ( "save" , ( ) => {
0 commit comments