resetHintKit function

void resetHintKit()

Puts the package's process-global state back to how it starts.

HintRegistry outlives any widget tree — that is the point of it, since the overlay it arbitrates is not scoped to a subtree — so without this a test inherits the previous test's open hint, showOnce keys and observers. Symptoms are a hint that mysteriously refuses to appear, or an observer that counts events from two tests at once.

Call it in setUp:

setUp(resetHintKit);

It closes whatever hint holds the floor, drops every registered observer, and replaces HintRegistry.storage with a fresh InMemoryTourStorage.

Implementation

void resetHintKit() {
  HintRegistry.instance
    ..closeAll()
    ..removeAllObservers()
    ..storage = InMemoryTourStorage();
}