@@ -555,4 +555,73 @@ void whenArchivingChannelUsingUnset_thenIsArchived() {
555555 .request ());
556556 Assertions .assertNull (channelMemberResponse .getMember ().getArchivedAt ());
557557 }
558+
559+ @ DisplayName ("Can set custom field on channel member" )
560+ @ Test
561+ void whenSettingCustomFieldOnMember_thenNoException () {
562+ final var customField = "custom_field_on_member" ;
563+ final var customValue = "custom_value" ;
564+
565+ var channelMemberReq =
566+ ChannelMemberRequestObject .builder ()
567+ .user (testUserRequestObject )
568+ .additionalField (customField , customValue )
569+ .build ();
570+ var channelReq =
571+ ChannelRequestObject .builder ()
572+ .createdBy (testUserRequestObject )
573+ .members (List .of (channelMemberReq ))
574+ .build ();
575+ var channel =
576+ Assertions .assertDoesNotThrow (
577+ () ->
578+ Channel .getOrCreate (testChannel .getType (), RandomStringUtils .randomAlphabetic (12 ))
579+ .data (channelReq )
580+ .request ());
581+
582+ Assertions .assertNotNull (channel .getMembers ());
583+ var members = channel .getMembers ();
584+ Assertions .assertEquals (1 , members .size ());
585+ var member = members .get (0 );
586+ Assertions .assertEquals (customValue , member .getAdditionalFields ().get (customField ));
587+ }
588+
589+ @ DisplayName ("Can set custom field on channel member" )
590+ @ Test
591+ void whenPartialUpdateMember_thenNoException () {
592+ var channelType = "messaging" ;
593+ var channelId = RandomStringUtils .randomAlphabetic (12 );
594+ var channelMemberReq =
595+ ChannelMemberRequestObject .builder ()
596+ .user (testUserRequestObject )
597+ .additionalField ("field1" , "value1" )
598+ .build ();
599+ var channelReq =
600+ ChannelRequestObject .builder ()
601+ .createdBy (testUserRequestObject )
602+ .members (List .of (channelMemberReq ))
603+ .build ();
604+ var channel =
605+ Assertions .assertDoesNotThrow (
606+ () -> Channel .getOrCreate (channelType , channelId ).data (channelReq ).request ());
607+
608+ Assertions .assertNotNull (channel .getMembers ());
609+ var members = channel .getMembers ();
610+ Assertions .assertEquals (1 , members .size ());
611+ var member = members .get (0 );
612+ Assertions .assertEquals ("value1" , member .getAdditionalFields ().get ("field1" ));
613+
614+ // update partial
615+ var partialUpdateResponse =
616+ Assertions .assertDoesNotThrow (
617+ () ->
618+ Channel .updateMemberPartial (channelType , channelId , testUserRequestObject .getId ())
619+ .setValue ("field1" , "updated_value1" )
620+ .setValue ("field2" , "value2" )
621+ .request ());
622+
623+ var updatedMember = partialUpdateResponse .getMember ();
624+ Assertions .assertEquals ("updated_value1" , updatedMember .getAdditionalFields ().get ("field1" ));
625+ Assertions .assertEquals ("value2" , updatedMember .getAdditionalFields ().get ("field2" ));
626+ }
558627}
0 commit comments