I don't like this setTimeout

it's probably a better idea to do this in the test:
* spy this addEventListener function
* where you currently have the "tick" call, use instead;

```javascript
this.data.state = 'registered';
spy.yield();
```