Jasmine have createSpy() return mock object
The answer here is actually pretty quick. Calling andReturn() will give you jasmine as 'this'. But, if you write andCallFake(), that function considers the mocked object to be this. Solution looks like so:
status: jasmine.createSpy().and.callFake(function(msg) { return this });
this works for me:
const res = {
status: jasmine.createSpy('status').and.callFake(() => res),
send: jasmine.createSpy('send').and.callFake(() => res),
};