def METHOD_NAME(self) -> None:
    typing = self.hs.get_typing_handler()
    assert isinstance(typing, TypingWriterHandler)
    self.reconnect()
    typing._push_update(member=RoomMember(ROOM_ID, USER_ID), typing=True)
    self.reactor.advance(0)
    # We should now see an attempt to connect to the master
    request = self.handle_http_replication_attempt()
    self.assert_request_is_get_repl_stream_updates(request, "typing")
    self.mock_handler.on_rdata.assert_called_once()
    stream_name, _, token, rdata_rows = self.mock_handler.on_rdata.call_args[0]
    self.assertEqual(stream_name, "typing")
    self.assertEqual(1, len(rdata_rows))
    row: TypingStream.TypingStreamRow = rdata_rows[0]
    self.assertEqual(ROOM_ID, row.room_id)
    self.assertEqual([USER_ID], row.user_ids)
    # Now let's disconnect and insert some data.
    self.disconnect()
    self.mock_handler.on_rdata.reset_mock()
    typing._push_update(member=RoomMember(ROOM_ID, USER_ID), typing=False)
    self.mock_handler.on_rdata.assert_not_called()
    self.reconnect()
    self.pump(0.1)
    # We should now see an attempt to connect to the master
    request = self.handle_http_replication_attempt()
    self.assert_request_is_get_repl_stream_updates(request, "typing")
    # The from token should be the token from the last RDATA we got.
    assert request.args is not None
    self.assertEqual(int(request.args[b"from_token"][0]), token)
    self.mock_handler.on_rdata.assert_called_once()
    stream_name, _, token, rdata_rows = self.mock_handler.on_rdata.call_args[0]
    self.assertEqual(stream_name, "typing")
    self.assertEqual(1, len(rdata_rows))
    row = rdata_rows[0]
    self.assertEqual(ROOM_ID, row.room_id)
    self.assertEqual([], row.user_ids)