{"action":"opened","issue":{"url":"https://api.github.com/repos/eloquent/phony/issues/125","labels_url":"https://api.github.com/repos/eloquent/phony/issues/125/labels{/name}","comments_url":"https://api.github.com/repos/eloquent/phony/issues/125/comments","events_url":"https://api.github.com/repos/eloquent/phony/issues/125/events","html_url":"https://github.com/eloquent/phony/issues/125","id":125797736,"number":125,"title":"Additions to the spy / spy verification APIs","user":{"login":"ezzatron","id":100152,"avatar_url":"https://avatars.githubusercontent.com/u/100152?v=3","gravatar_id":"","url":"https://api.github.com/users/ezzatron","html_url":"https://github.com/ezzatron","followers_url":"https://api.github.com/users/ezzatron/followers","following_url":"https://api.github.com/users/ezzatron/following{/other_user}","gists_url":"https://api.github.com/users/ezzatron/gists{/gist_id}","starred_url":"https://api.github.com/users/ezzatron/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ezzatron/subscriptions","organizations_url":"https://api.github.com/users/ezzatron/orgs","repos_url":"https://api.github.com/users/ezzatron/repos","events_url":"https://api.github.com/users/ezzatron/events{/privacy}","received_events_url":"https://api.github.com/users/ezzatron/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2016-01-10T03:58:58Z","updated_at":"2016-01-10T03:58:58Z","closed_at":null,"body":"This task is intended as a summary of the currently proposed additions to the spy APIs. This includes #115, #102, #78, #92 and #11.\r\n\r\nThese are the proposed methods:\r\n\r\n- `generates()` - starts generator stubbing (#11)\r\n- `resolvesTo()` - returns a promise that resolves to a value (#78)\r\n- `rejectsWith()` - returns a promise that rejects with a value (#78)\r\n- `notifies()` - emits a promise notification (#78)\r\n- `cancels()` - causes the promise to be cancelled (#78)\r\n- `resolvedTo()` - verifies that a promise resolved to a value (#78)\r\n- `rejectedWith()` - verifies that a promise rejected with a value (#78)\r\n- `notified()` - verifies that the promise emitted a notification (#78)\r\n- `cancelled()` - verifies that the promise was cancelled (#78)\r\n- `generated()` - verifies that a spy or call returned a generator (#115)\r\n- `responded()` - verifies that a call \"responded\" (returned the initial generator or traversable) (also passes for returned non-traversables and regular thrown exceptions) (#92)\r\n- `completed()` - verifies that a call \"completed\" (similar to `consumed()`, but passes for returned non-traversables and regular thrown exceptions) (#92)\r\n- `started()` - verifies that iteration started (#102) - pretty ambiguous name, maybe we can find a better one\r\n- `consumed()` - verifies that iteration completed (#102)"}}