@@ -748,4 +748,84 @@ describe('rclnodejs parameters test suite', function () {
748748 assert . ok ( paramFoundInParamList ) ;
749749 } ) ;
750750 } ) ;
751+
752+ describe ( 'parameterOverrides validation' , function ( ) {
753+ const NODE_NAME = 'test_node' ;
754+ let node ;
755+ this . timeout ( 60 * 1000 ) ;
756+
757+ afterEach ( function ( ) {
758+ if ( node ) node . destroy ( ) ;
759+ rclnodejs . shutdown ( ) ;
760+ } ) ;
761+
762+ it ( 'should reject non-Parameter objects in parameterOverrides' , async function ( ) {
763+ await rclnodejs . init ( ) ;
764+ const options = new NodeOptions ( ) ;
765+ options . parameterOverrides = [ { name : 'p1' , value : 'not a Parameter' } ] ;
766+ assert . throws (
767+ ( ) =>
768+ rclnodejs . createNode (
769+ NODE_NAME ,
770+ '' ,
771+ Context . defaultContext ( ) ,
772+ options
773+ ) ,
774+ ( err ) => err instanceof rclnodejs . TypeValidationError ,
775+ 'Expected TypeValidationError for non-Parameter parameterOverride'
776+ ) ;
777+ } ) ;
778+ } ) ;
779+
780+ describe ( 'parameter type validation' , function ( ) {
781+ it ( 'validType should reject invalid numeric types' , function ( ) {
782+ // A Parameter with an out-of-range type should throw on validate()
783+ assert . throws ( ( ) => {
784+ new Parameter ( 'bad' , 999 , 'value' ) . validate ( ) ;
785+ } ) ;
786+ } ) ;
787+
788+ it ( 'validType should accept all known ParameterTypes' , function ( ) {
789+ // NOT_SET type
790+ assert . doesNotThrow ( ( ) => {
791+ new Parameter ( 'p' , ParameterType . PARAMETER_NOT_SET ) . validate ( ) ;
792+ } ) ;
793+ // BOOL type
794+ assert . doesNotThrow ( ( ) => {
795+ new Parameter ( 'p' , ParameterType . PARAMETER_BOOL , true ) . validate ( ) ;
796+ } ) ;
797+ // STRING type
798+ assert . doesNotThrow ( ( ) => {
799+ new Parameter ( 'p' , ParameterType . PARAMETER_STRING , 'hello' ) . validate ( ) ;
800+ } ) ;
801+ } ) ;
802+
803+ it ( 'array parameter validation' , function ( ) {
804+ assert . doesNotThrow ( ( ) => {
805+ new Parameter ( 'p' , ParameterType . PARAMETER_STRING_ARRAY , [
806+ 'a' ,
807+ 'b' ,
808+ ] ) . validate ( ) ;
809+ } ) ;
810+ assert . doesNotThrow ( ( ) => {
811+ new Parameter ( 'p' , ParameterType . PARAMETER_INTEGER_ARRAY , [
812+ 1n ,
813+ 2n ,
814+ ] ) . validate ( ) ;
815+ } ) ;
816+ assert . doesNotThrow ( ( ) => {
817+ new Parameter (
818+ 'p' ,
819+ ParameterType . PARAMETER_DOUBLE_ARRAY ,
820+ [ 1.0 , 2.0 ]
821+ ) . validate ( ) ;
822+ } ) ;
823+ assert . doesNotThrow ( ( ) => {
824+ new Parameter ( 'p' , ParameterType . PARAMETER_BOOL_ARRAY , [
825+ true ,
826+ false ,
827+ ] ) . validate ( ) ;
828+ } ) ;
829+ } ) ;
830+ } ) ;
751831} ) ;
0 commit comments