UNPKG

fusion-plugin-rpc

Version:

Fetch data on the server and client with an RPC style interface.

56 lines 6.05 kB
import sinon from 'sinon'; import getMockRpcHandlers from '../mock-rpc-handlers'; import ResponseError from '../response-error'; test('mockRpcHandlers', async () => { expect.assertions(4); const getUserFixture = { getUser: { firstName: 'John', lastName: 'Doe', uuid: 123 } }; const updateUserFixture = { updateUser: [{ args: [{ firstName: 'Jane' }], response: { firstName: 'Jane', lastName: 'Doe', uuid: 123 } }, { args: [{ firstName: '' }], response: new ResponseError('Username cant be empty') }] }; const rpcFixtures = [getUserFixture, updateUserFixture]; const onMockRpcSpy = sinon.spy(); const mockRpcHandlers = getMockRpcHandlers(rpcFixtures, onMockRpcSpy); const user = await mockRpcHandlers.getUser(); expect(user).toEqual({ firstName: 'John', lastName: 'Doe', uuid: 123 }); expect(onMockRpcSpy.getCall(0).args).toEqual(['getUser', [], { firstName: 'John', lastName: 'Doe', uuid: 123 }]); const updatedUser = await mockRpcHandlers.updateUser({ firstName: 'Jane' }); expect(updatedUser).toEqual({ firstName: 'Jane', lastName: 'Doe', uuid: 123 }); await expect(mockRpcHandlers.updateUser({ firstName: '' })).rejects.toThrow(new Error('Username cant be empty')); }); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzaW5vbiIsImdldE1vY2tScGNIYW5kbGVycyIsIlJlc3BvbnNlRXJyb3IiLCJ0ZXN0IiwiZXhwZWN0IiwiYXNzZXJ0aW9ucyIsImdldFVzZXJGaXh0dXJlIiwiZ2V0VXNlciIsImZpcnN0TmFtZSIsImxhc3ROYW1lIiwidXVpZCIsInVwZGF0ZVVzZXJGaXh0dXJlIiwidXBkYXRlVXNlciIsImFyZ3MiLCJyZXNwb25zZSIsInJwY0ZpeHR1cmVzIiwib25Nb2NrUnBjU3B5Iiwic3B5IiwibW9ja1JwY0hhbmRsZXJzIiwidXNlciIsInRvRXF1YWwiLCJnZXRDYWxsIiwidXBkYXRlZFVzZXIiLCJyZWplY3RzIiwidG9UaHJvdyIsIkVycm9yIl0sInNvdXJjZXMiOlsic3JjL19fdGVzdHNfXy90ZXN0LW1vY2stcnBjLWhhbmRsZXJzLmJyb3dzZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHNpbm9uIGZyb20gJ3Npbm9uJztcblxuaW1wb3J0IGdldE1vY2tScGNIYW5kbGVycyBmcm9tICcuLi9tb2NrLXJwYy1oYW5kbGVycyc7XG5pbXBvcnQgdHlwZSB7UnBjUmVzcG9uc2VNYXB9IGZyb20gJy4uL21vY2stcnBjLWhhbmRsZXJzJztcbmltcG9ydCBSZXNwb25zZUVycm9yIGZyb20gJy4uL3Jlc3BvbnNlLWVycm9yJztcblxudGVzdCgnbW9ja1JwY0hhbmRsZXJzJywgYXN5bmMgKCkgPT4ge1xuICBleHBlY3QuYXNzZXJ0aW9ucyg0KTtcbiAgY29uc3QgZ2V0VXNlckZpeHR1cmUgPSB7XG4gICAgZ2V0VXNlcjoge1xuICAgICAgZmlyc3ROYW1lOiAnSm9obicsXG4gICAgICBsYXN0TmFtZTogJ0RvZScsXG4gICAgICB1dWlkOiAxMjMsXG4gICAgfSxcbiAgfTtcbiAgY29uc3QgdXBkYXRlVXNlckZpeHR1cmU6IHtcbiAgICB1cGRhdGVVc2VyOiBScGNSZXNwb25zZU1hcCB8IFJlc3BvbnNlRXJyb3I7XG4gIH0gPSB7XG4gICAgdXBkYXRlVXNlcjogW1xuICAgICAge1xuICAgICAgICBhcmdzOiBbe2ZpcnN0TmFtZTogJ0phbmUnfV0sXG4gICAgICAgIHJlc3BvbnNlOiB7XG4gICAgICAgICAgZmlyc3ROYW1lOiAnSmFuZScsXG4gICAgICAgICAgbGFzdE5hbWU6ICdEb2UnLFxuICAgICAgICAgIHV1aWQ6IDEyMyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGFyZ3M6IFt7Zmlyc3ROYW1lOiAnJ31dLFxuICAgICAgICByZXNwb25zZTogbmV3IFJlc3BvbnNlRXJyb3IoJ1VzZXJuYW1lIGNhbnQgYmUgZW1wdHknKSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfTtcbiAgY29uc3QgcnBjRml4dHVyZXMgPSBbZ2V0VXNlckZpeHR1cmUsIHVwZGF0ZVVzZXJGaXh0dXJlXTtcblxuICBjb25zdCBvbk1vY2tScGNTcHkgPSBzaW5vbi5zcHkoKTtcblxuICBjb25zdCBtb2NrUnBjSGFuZGxlcnMgPSBnZXRNb2NrUnBjSGFuZGxlcnMocnBjRml4dHVyZXMsIG9uTW9ja1JwY1NweSk7XG5cbiAgY29uc3QgdXNlciA9IGF3YWl0IG1vY2tScGNIYW5kbGVycy5nZXRVc2VyKCk7XG5cbiAgZXhwZWN0KHVzZXIpLnRvRXF1YWwoe1xuICAgIGZpcnN0TmFtZTogJ0pvaG4nLFxuICAgIGxhc3ROYW1lOiAnRG9lJyxcbiAgICB1dWlkOiAxMjMsXG4gIH0pO1xuXG4gIGV4cGVjdChvbk1vY2tScGNTcHkuZ2V0Q2FsbCgwKS5hcmdzKS50b0VxdWFsKFtcbiAgICAnZ2V0VXNlcicsXG4gICAgW10sXG4gICAge1xuICAgICAgZmlyc3ROYW1lOiAnSm9obicsXG4gICAgICBsYXN0TmFtZTogJ0RvZScsXG4gICAgICB1dWlkOiAxMjMsXG4gICAgfSxcbiAgXSk7XG5cbiAgY29uc3QgdXBkYXRlZFVzZXIgPSBhd2FpdCBtb2NrUnBjSGFuZGxlcnMudXBkYXRlVXNlcih7Zmlyc3ROYW1lOiAnSmFuZSd9KTtcblxuICBleHBlY3QodXBkYXRlZFVzZXIpLnRvRXF1YWwoe1xuICAgIGZpcnN0TmFtZTogJ0phbmUnLFxuICAgIGxhc3ROYW1lOiAnRG9lJyxcbiAgICB1dWlkOiAxMjMsXG4gIH0pO1xuXG4gIGF3YWl0IGV4cGVjdChtb2NrUnBjSGFuZGxlcnMudXBkYXRlVXNlcih7Zmlyc3ROYW1lOiAnJ30pKS5yZWplY3RzLnRvVGhyb3coXG4gICAgbmV3IEVycm9yKCdVc2VybmFtZSBjYW50IGJlIGVtcHR5JylcbiAgKTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxLQUFLLE1BQU0sT0FBTztBQUV6QixPQUFPQyxrQkFBa0IsTUFBTSxzQkFBc0I7QUFFckQsT0FBT0MsYUFBYSxNQUFNLG1CQUFtQjtBQUU3Q0MsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFlBQVk7RUFDbENDLE1BQU0sQ0FBQ0MsVUFBVSxDQUFDLENBQUMsQ0FBQztFQUNwQixNQUFNQyxjQUFjLEdBQUc7SUFDckJDLE9BQU8sRUFBRTtNQUNQQyxTQUFTLEVBQUUsTUFBTTtNQUNqQkMsUUFBUSxFQUFFLEtBQUs7TUFDZkMsSUFBSSxFQUFFO0lBQ1I7RUFDRixDQUFDO0VBQ0QsTUFBTUMsaUJBRUwsR0FBRztJQUNGQyxVQUFVLEVBQUUsQ0FDVjtNQUNFQyxJQUFJLEVBQUUsQ0FBQztRQUFDTCxTQUFTLEVBQUU7TUFBTSxDQUFDLENBQUM7TUFDM0JNLFFBQVEsRUFBRTtRQUNSTixTQUFTLEVBQUUsTUFBTTtRQUNqQkMsUUFBUSxFQUFFLEtBQUs7UUFDZkMsSUFBSSxFQUFFO01BQ1I7SUFDRixDQUFDLEVBQ0Q7TUFDRUcsSUFBSSxFQUFFLENBQUM7UUFBQ0wsU0FBUyxFQUFFO01BQUUsQ0FBQyxDQUFDO01BQ3ZCTSxRQUFRLEVBQUUsSUFBSVosYUFBYSxDQUFDLHdCQUF3QjtJQUN0RCxDQUFDO0VBRUwsQ0FBQztFQUNELE1BQU1hLFdBQVcsR0FBRyxDQUFDVCxjQUFjLEVBQUVLLGlCQUFpQixDQUFDO0VBRXZELE1BQU1LLFlBQVksR0FBR2hCLEtBQUssQ0FBQ2lCLEdBQUcsRUFBRTtFQUVoQyxNQUFNQyxlQUFlLEdBQUdqQixrQkFBa0IsQ0FBQ2MsV0FBVyxFQUFFQyxZQUFZLENBQUM7RUFFckUsTUFBTUcsSUFBSSxHQUFHLE1BQU1ELGVBQWUsQ0FBQ1gsT0FBTyxFQUFFO0VBRTVDSCxNQUFNLENBQUNlLElBQUksQ0FBQyxDQUFDQyxPQUFPLENBQUM7SUFDbkJaLFNBQVMsRUFBRSxNQUFNO0lBQ2pCQyxRQUFRLEVBQUUsS0FBSztJQUNmQyxJQUFJLEVBQUU7RUFDUixDQUFDLENBQUM7RUFFRk4sTUFBTSxDQUFDWSxZQUFZLENBQUNLLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQ1IsSUFBSSxDQUFDLENBQUNPLE9BQU8sQ0FBQyxDQUMzQyxTQUFTLEVBQ1QsRUFBRSxFQUNGO0lBQ0VaLFNBQVMsRUFBRSxNQUFNO0lBQ2pCQyxRQUFRLEVBQUUsS0FBSztJQUNmQyxJQUFJLEVBQUU7RUFDUixDQUFDLENBQ0YsQ0FBQztFQUVGLE1BQU1ZLFdBQVcsR0FBRyxNQUFNSixlQUFlLENBQUNOLFVBQVUsQ0FBQztJQUFDSixTQUFTLEVBQUU7RUFBTSxDQUFDLENBQUM7RUFFekVKLE1BQU0sQ0FBQ2tCLFdBQVcsQ0FBQyxDQUFDRixPQUFPLENBQUM7SUFDMUJaLFNBQVMsRUFBRSxNQUFNO0lBQ2pCQyxRQUFRLEVBQUUsS0FBSztJQUNmQyxJQUFJLEVBQUU7RUFDUixDQUFDLENBQUM7RUFFRixNQUFNTixNQUFNLENBQUNjLGVBQWUsQ0FBQ04sVUFBVSxDQUFDO0lBQUNKLFNBQVMsRUFBRTtFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUNlLE9BQU8sQ0FBQ0MsT0FBTyxDQUN2RSxJQUFJQyxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FDcEM7QUFDSCxDQUFDLENBQUMifQ==