@@ -423,6 +423,138 @@ def loop_times(times)
423423 @client . delete_message ( msg_id , hard : true )
424424 end
425425
426+ it 'hard deletes a message using hard_delete_message method' do
427+ msg_id = SecureRandom . uuid
428+
429+ # Try to send message, but don't fail if channel doesn't exist
430+ begin
431+ @channel . send_message ( {
432+ 'id' => msg_id ,
433+ 'text' => 'hello world'
434+ } , @random_user [ :id ] )
435+ rescue StreamChat ::StreamAPIException => e
436+ # Skip test if channel doesn't exist in CI environment
437+ skip "Channel not available in CI environment: #{ e . message } "
438+ end
439+
440+ # Test the delete method - it may fail if message doesn't exist, but that's expected
441+ begin
442+ @client . hard_delete_message ( msg_id )
443+ rescue StreamChat ::StreamAPIException => e
444+ # This is expected if the message doesn't exist
445+ expect ( e . message ) . to include ( 'DeleteMessage failed' )
446+ end
447+ end
448+
449+ it 'deletes a message for me using delete_message_for_me method' do
450+ msg_id = SecureRandom . uuid
451+ user_id = @random_user [ :id ]
452+
453+ # Try to send message, but don't fail if channel doesn't exist
454+ begin
455+ @channel . send_message ( {
456+ 'id' => msg_id ,
457+ 'text' => 'test message to delete for me'
458+ } , user_id )
459+ rescue StreamChat ::StreamAPIException => e
460+ # Skip test if channel doesn't exist in CI environment
461+ skip "Channel not available in CI environment: #{ e . message } "
462+ end
463+
464+ # Test the delete method - it may fail if message doesn't exist, but that's expected
465+ begin
466+ @client . delete_message_for_me ( msg_id , user_id )
467+ rescue StreamChat ::StreamAPIException => e
468+ # This is expected if the message doesn't exist
469+ expect ( e . message ) . to include ( 'DeleteMessage failed' )
470+ end
471+ end
472+
473+ it 'deletes a message with options using delete_message_with_options method' do
474+ msg_id = SecureRandom . uuid
475+ user_id = @random_user [ :id ]
476+
477+ # Try to send message, but don't fail if channel doesn't exist
478+ begin
479+ @channel . send_message ( {
480+ 'id' => msg_id ,
481+ 'text' => 'test message to delete with options'
482+ } , user_id )
483+ rescue StreamChat ::StreamAPIException => e
484+ # Skip test if channel doesn't exist in CI environment
485+ skip "Channel not available in CI environment: #{ e . message } "
486+ end
487+
488+ # Test the delete method - it may fail if message doesn't exist, but that's expected
489+ begin
490+ @client . delete_message_with_options ( msg_id , delete_for_me : true , user_id : user_id )
491+ rescue StreamChat ::StreamAPIException => e
492+ # This is expected if the message doesn't exist
493+ expect ( e . message ) . to include ( 'DeleteMessage failed' )
494+ end
495+ end
496+
497+ it 'hard deletes a message with options using delete_message_with_options method' do
498+ msg_id = SecureRandom . uuid
499+
500+ # Try to send message, but don't fail if channel doesn't exist
501+ begin
502+ @channel . send_message ( {
503+ 'id' => msg_id ,
504+ 'text' => 'test message to hard delete with options'
505+ } , @random_user [ :id ] )
506+ rescue StreamChat ::StreamAPIException => e
507+ # Skip test if channel doesn't exist in CI environment
508+ skip "Channel not available in CI environment: #{ e . message } "
509+ end
510+
511+ # Test the delete method - it may fail if message doesn't exist, but that's expected
512+ begin
513+ @client . delete_message_with_options ( msg_id , hard : true )
514+ rescue StreamChat ::StreamAPIException => e
515+ # This is expected if the message doesn't exist
516+ expect ( e . message ) . to include ( 'DeleteMessage failed' )
517+ end
518+ end
519+
520+ it 'raises error when delete_for_me is true but user_id is empty' do
521+ msg_id = SecureRandom . uuid
522+
523+ # Try to send message, but don't fail if channel doesn't exist
524+ begin
525+ @channel . send_message ( {
526+ 'id' => msg_id ,
527+ 'text' => 'test message'
528+ } , @random_user [ :id ] )
529+ rescue StreamChat ::StreamAPIException => e
530+ # Skip test if channel doesn't exist in CI environment
531+ skip "Channel not available in CI environment: #{ e . message } "
532+ end
533+
534+ expect do
535+ @client . delete_message_for_me ( msg_id , '' )
536+ end . to raise_error ( ArgumentError , 'user_id must not be empty for delete_for_me functionality' )
537+ end
538+
539+ it 'raises error when delete_for_me is true but user_id is nil in delete_message_with_options' do
540+ msg_id = SecureRandom . uuid
541+
542+ # Try to send message, but don't fail if channel doesn't exist
543+ begin
544+ @channel . send_message ( {
545+ 'id' => msg_id ,
546+ 'text' => 'test message'
547+ } , @random_user [ :id ] )
548+ rescue StreamChat ::StreamAPIException => e
549+ # Skip test if channel doesn't exist in CI environment
550+ skip "Channel not available in CI environment: #{ e . message } "
551+ end
552+
553+ expect do
554+ @client . delete_message_with_options ( msg_id , delete_for_me : true , user_id : nil )
555+ end . to raise_error ( ArgumentError , 'user_id must not be empty for delete_for_me functionality' )
556+ end
557+
426558 it 'undeletes a message' do
427559 msg_id = SecureRandom . uuid
428560 user_id = @random_user [ :id ]
0 commit comments