anchor.diff:      timer:sleep(10),
   
       Msgs = publish_multi([<<"test">>, <<"lifo">>, <<"topic">>]), % publish 100, only the first 10 are kept
  -    {offline, fanout, 10, 0} = vmq_queue:status(QPid),
  -
  -    SessionPid2 = spawn(fun() -> mock_session(Parent) end),
  -    {ok, QPid} = vmq_reg:register_subscriber_(SessionPid2, SubscriberId, QueueOpts),
  +    {offline, fanout, 10, 0, false} = vmq_queue:status(QPid),
  +
  +    SessionPid2 = spawn(fun() -> mock_session(Parent) end),
  +    {ok, QPid} = vmq_reg_leader:register_subscriber(SessionPid2, SubscriberId, QueueOpts),
       {KeptMsgs, _} = lists:split(10, lists:reverse(Msgs)),
       ok = receive_multi(QPid, 1, KeptMsgs),
       {ok, []} = vmq_lvldb_store:msg_store_find(SubscriberId).
  
positive.code:     Msgs = publish_multi([<<"test">>, <<"lifo">>, <<"topic">>]),
  
      SessionPid2 = spawn(fun() -> mock_session(Parent) end),
      {ok, QPid} = vmq_reg:register_subscriber_(SessionPid2, SubscriberId, QueueOpts),
  
      ok = receive_multi(QPid, 1, lists:reverse(Msgs)), %% reverse list to get lifo
      {ok, []} = vmq_lvldb_store:msg_store_find(SubscriberId).
  
negative.code:     QueueOpts = maps:merge(#{clean_session => false}, vmq_queue:default_opts()),
      SessionPid1 = spawn(fun() -> mock_session(Parent) end),
  
      {ok, QPid} = vmq_reg_leader:register_subscriber(SessionPid1, SubscriberId, QueueOpts),
      ok = vmq_reg:subscribe(false, <<"mock-user">>, SubscriberId,
                             [{[<<"test">>, <<"fifo">>, <<"topic">>], 1}]),
      %% teardown session
  