You don't really seem to test `receive` and also API is awkward (even though I may have suggested it in first place :).

I think the thing that would make most sense to me is:

On the client:
```js
let { send } = require("sdk/event/bus")

send("say-hello", "world").then(function(message) {
  console.log(message)
});
```

On the host:

```js
let { receive } = require("sdk/event/bus");
recieve("say-hello", function(name) {
  return "Hello " + name
});
```