@@ -32,7 +32,10 @@ tests() ->
32
32
should_translate_amqp2mqtt_on_retention_search ,
33
33
recover ,
34
34
recover_with_message_expiry_interval ,
35
- retained_wildcard_single_level , retained_wildcard_multi_level , retained_wildcard_mixed ].
35
+ retained_wildcard_single_level ,
36
+ retained_wildcard_multi_level ,
37
+ retained_wildcard_mixed ,
38
+ should_remove_from_retained ].
36
39
37
40
suite () ->
38
41
[{timetrap , {minutes , 2 }}].
@@ -274,3 +277,22 @@ retained_wildcard_mixed(Config) ->
274
277
{ok , _ , _ } = emqtt :subscribe (C , <<" devices/+/readings/#" >>, qos1 ),
275
278
ok = expect_publishes (C , <<" devices/sensor1/readings/temperature" >>, [<<" 23.5" >>]),
276
279
ok = emqtt :disconnect (C ).
280
+
281
+ should_remove_from_retained (Config ) ->
282
+ C = connect (<<" wildcardClientRetainer" >>, Config , [{ack_timeout , 1 }]),
283
+ ok =
284
+ emqtt :publish (C ,
285
+ <<" devices/sensor1/readings/temperature" >>,
286
+ #{},
287
+ <<" 23.5" >>,
288
+ [{retain , true }]),
289
+ ok =
290
+ emqtt :publish (C , <<" devices/sensor1/readings/temperature" >>, #{}, <<>>, [{retain , true }]),
291
+ {ok , _ , _ } = emqtt :subscribe (C , <<" devices/sensor1/readings/temperature" >>, qos1 ),
292
+ receive
293
+ Unexpected ->
294
+ ct :fail (" Unexpected message: ~p " , [Unexpected ])
295
+ after 1000 ->
296
+ ok
297
+ end ,
298
+ ok = emqtt :disconnect (C ).
0 commit comments