Event test coverage (messages)

WIP, opening this to start discussion.
Because view logic in a component that has nothing to do with the view is a bad thing, same as https://github.com/candy-chat/candy/commit/a2bd6424d349e37f68069b3a975e26f9192ccbf7. Practically it would have meant setting up the view in these tests, which is absurd.