.post('/messages', (message) => { assert.deepEqual(IlpPacket.deserializeIlpError(Buffer.from(message.data.ilp, 'base64')), { code: 'F00', name: 'Bad Request', triggeredBy: 'example.red.mike', forwardedBy: [], triggeredAt: new Date(), data: JSON.stringify({message: 'No matching handler for request'}) }) return true })
.post('/messages', (message) => { assert.equal(message.ledger, this.ledgerMessage.ledger) assert.equal(message.from, this.ledgerMessage.from) assert.equal(message.to, this.ledgerMessage.to) assert.equal(message.data.id, this.ledgerMessage.data.id) assert.deepEqual(IlpPacket.deserializeIlpError(Buffer.from(message.data.ilp, 'base64')), { code: 'F00', name: 'Bad Request', triggeredBy: 'example.red.mike', forwardedBy: [], triggeredAt: new Date(), data: JSON.stringify({message: 'fail'}) }) return true })
it('should return an ILP error if the request handler errors', function * () { this.response.to = this.message.from = peerAddress this.response.from = this.message.to = this.plugin.getAccount() this.plugin.registerRequestHandler((request) => { return Promise.reject(new Error('this is an error')) }) const response = yield this.plugin.receive('send_request', [this.message]) assert.equal(response.to, this.message.from) assert.equal(response.from, this.message.to) assert.equal(response.ledger, this.message.ledger) const error = IlpPacket.deserializeIlpError(Buffer.from(response.ilp, 'base64')) assert.equal(error.code, 'F00') assert.equal(error.name, 'Bad Request') assert.equal(error.triggeredBy, this.plugin.getAccount()) assert.deepEqual(error.forwardedBy, []) assert.deepEqual(JSON.parse(error.data), { message: 'this is an error' }) })