Make promise mock work more like promise

This fixes the currently broken test. Promises are chainable and
previously this wasn't chainable. This makes the methods chainable.