@@ -34,6 +34,7 @@ all_tests() ->
3434 add_replica ,
3535 restart_stream ,
3636 delete_stream ,
37+ delete_stream_idempotent ,
3738 delete_replica_leader ,
3839 delete_replica ,
3940 delete_two_replicas ,
@@ -949,8 +950,29 @@ delete_stream(_) ->
949950 S7 = update_stream (meta (? LINE ), {member_deleted , StreamId , #{node => N3 }},
950951 S6 ),
951952 ? assertEqual (undefined , S7 ),
952- % % idempotency test
953- _ = update_stream (Meta1 , {delete_stream , StreamId , #{}}, S7 ),
953+ ok .
954+
955+ delete_stream_idempotent (_ ) ->
956+ S0 = rabbit_stream_coordinator :init (#{machine_version => 5 }),
957+ StreamId = atom_to_list (? FUNCTION_NAME ),
958+
959+ TypeState = #{name => StreamId ,
960+ retention => [],
961+ nodes => [node ()]},
962+ Q = new_q (list_to_binary (StreamId ), TypeState ),
963+ Cmd0 = {new_stream , StreamId , #{leader_node => node (),
964+ retention => [],
965+ queue => Q }},
966+ {S1 , _ , _ } = apply_cmd (meta (? LINE ), Cmd0 , S0 ),
967+
968+ Cmd1 = {delete_stream , StreamId , #{}},
969+ {S2 , ok , []} = apply_cmd (meta (? LINE ), Cmd1 , S1 ),
970+
971+ Cmd2 = {member_deleted , StreamId , #{node => node ()}},
972+ {S3 , '$ra_no_reply' , []} = apply_cmd (meta (? LINE ), Cmd2 , S2 ),
973+
974+ {S3 , ok , []} = apply_cmd (meta (? LINE ), Cmd1 , S3 ),
975+
954976 ok .
955977
956978add_replica (_ ) ->
0 commit comments