fusion-plugin-rpc
Version:
Fetch data on the server and client with an RPC style interface.
59 lines (58 loc) • 6.2 kB
JavaScript
"use strict";
var _sinon = _interopRequireDefault(require("sinon"));
var _mockRpcHandlers = _interopRequireDefault(require("../mock-rpc-handlers"));
var _responseError = _interopRequireDefault(require("../response-error"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
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.default('Username cant be empty')
}]
};
const rpcFixtures = [getUserFixture, updateUserFixture];
const onMockRpcSpy = _sinon.default.spy();
const mockRpcHandlers = (0, _mockRpcHandlers.default)(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,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ0ZXN0IiwiZXhwZWN0IiwiYXNzZXJ0aW9ucyIsImdldFVzZXJGaXh0dXJlIiwiZ2V0VXNlciIsImZpcnN0TmFtZSIsImxhc3ROYW1lIiwidXVpZCIsInVwZGF0ZVVzZXJGaXh0dXJlIiwidXBkYXRlVXNlciIsImFyZ3MiLCJyZXNwb25zZSIsIlJlc3BvbnNlRXJyb3IiLCJycGNGaXh0dXJlcyIsIm9uTW9ja1JwY1NweSIsInNpbm9uIiwic3B5IiwibW9ja1JwY0hhbmRsZXJzIiwiZ2V0TW9ja1JwY0hhbmRsZXJzIiwidXNlciIsInRvRXF1YWwiLCJnZXRDYWxsIiwidXBkYXRlZFVzZXIiLCJyZWplY3RzIiwidG9UaHJvdyIsIkVycm9yIl0sInNvdXJjZXMiOlsic3JjL19fdGVzdHNfXy90ZXN0LW1vY2stcnBjLWhhbmRsZXJzLmJyb3dzZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHNpbm9uIGZyb20gJ3Npbm9uJztcblxuaW1wb3J0IGdldE1vY2tScGNIYW5kbGVycyBmcm9tICcuLi9tb2NrLXJwYy1oYW5kbGVycyc7XG5pbXBvcnQgdHlwZSB7UnBjUmVzcG9uc2VNYXB9IGZyb20gJy4uL21vY2stcnBjLWhhbmRsZXJzJztcbmltcG9ydCBSZXNwb25zZUVycm9yIGZyb20gJy4uL3Jlc3BvbnNlLWVycm9yJztcblxudGVzdCgnbW9ja1JwY0hhbmRsZXJzJywgYXN5bmMgKCkgPT4ge1xuICBleHBlY3QuYXNzZXJ0aW9ucyg0KTtcbiAgY29uc3QgZ2V0VXNlckZpeHR1cmUgPSB7XG4gICAgZ2V0VXNlcjoge1xuICAgICAgZmlyc3ROYW1lOiAnSm9obicsXG4gICAgICBsYXN0TmFtZTogJ0RvZScsXG4gICAgICB1dWlkOiAxMjMsXG4gICAgfSxcbiAgfTtcbiAgY29uc3QgdXBkYXRlVXNlckZpeHR1cmU6IHtcbiAgICB1cGRhdGVVc2VyOiBScGNSZXNwb25zZU1hcCB8IFJlc3BvbnNlRXJyb3I7XG4gIH0gPSB7XG4gICAgdXBkYXRlVXNlcjogW1xuICAgICAge1xuICAgICAgICBhcmdzOiBbe2ZpcnN0TmFtZTogJ0phbmUnfV0sXG4gICAgICAgIHJlc3BvbnNlOiB7XG4gICAgICAgICAgZmlyc3ROYW1lOiAnSmFuZScsXG4gICAgICAgICAgbGFzdE5hbWU6ICdEb2UnLFxuICAgICAgICAgIHV1aWQ6IDEyMyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGFyZ3M6IFt7Zmlyc3ROYW1lOiAnJ31dLFxuICAgICAgICByZXNwb25zZTogbmV3IFJlc3BvbnNlRXJyb3IoJ1VzZXJuYW1lIGNhbnQgYmUgZW1wdHknKSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfTtcbiAgY29uc3QgcnBjRml4dHVyZXMgPSBbZ2V0VXNlckZpeHR1cmUsIHVwZGF0ZVVzZXJGaXh0dXJlXTtcblxuICBjb25zdCBvbk1vY2tScGNTcHkgPSBzaW5vbi5zcHkoKTtcblxuICBjb25zdCBtb2NrUnBjSGFuZGxlcnMgPSBnZXRNb2NrUnBjSGFuZGxlcnMocnBjRml4dHVyZXMsIG9uTW9ja1JwY1NweSk7XG5cbiAgY29uc3QgdXNlciA9IGF3YWl0IG1vY2tScGNIYW5kbGVycy5nZXRVc2VyKCk7XG5cbiAgZXhwZWN0KHVzZXIpLnRvRXF1YWwoe1xuICAgIGZpcnN0TmFtZTogJ0pvaG4nLFxuICAgIGxhc3ROYW1lOiAnRG9lJyxcbiAgICB1dWlkOiAxMjMsXG4gIH0pO1xuXG4gIGV4cGVjdChvbk1vY2tScGNTcHkuZ2V0Q2FsbCgwKS5hcmdzKS50b0VxdWFsKFtcbiAgICAnZ2V0VXNlcicsXG4gICAgW10sXG4gICAge1xuICAgICAgZmlyc3ROYW1lOiAnSm9obicsXG4gICAgICBsYXN0TmFtZTogJ0RvZScsXG4gICAgICB1dWlkOiAxMjMsXG4gICAgfSxcbiAgXSk7XG5cbiAgY29uc3QgdXBkYXRlZFVzZXIgPSBhd2FpdCBtb2NrUnBjSGFuZGxlcnMudXBkYXRlVXNlcih7Zmlyc3ROYW1lOiAnSmFuZSd9KTtcblxuICBleHBlY3QodXBkYXRlZFVzZXIpLnRvRXF1YWwoe1xuICAgIGZpcnN0TmFtZTogJ0phbmUnLFxuICAgIGxhc3ROYW1lOiAnRG9lJyxcbiAgICB1dWlkOiAxMjMsXG4gIH0pO1xuXG4gIGF3YWl0IGV4cGVjdChtb2NrUnBjSGFuZGxlcnMudXBkYXRlVXNlcih7Zmlyc3ROYW1lOiAnJ30pKS5yZWplY3RzLnRvVGhyb3coXG4gICAgbmV3IEVycm9yKCdVc2VybmFtZSBjYW50IGJlIGVtcHR5JylcbiAgKTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOztBQUFBO0FBRUE7QUFFQTtBQUE4QztBQUU5Q0EsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFlBQVk7RUFDbENDLE1BQU0sQ0FBQ0MsVUFBVSxDQUFDLENBQUMsQ0FBQztFQUNwQixNQUFNQyxjQUFjLEdBQUc7SUFDckJDLE9BQU8sRUFBRTtNQUNQQyxTQUFTLEVBQUUsTUFBTTtNQUNqQkMsUUFBUSxFQUFFLEtBQUs7TUFDZkMsSUFBSSxFQUFFO0lBQ1I7RUFDRixDQUFDO0VBQ0QsTUFBTUMsaUJBRUwsR0FBRztJQUNGQyxVQUFVLEVBQUUsQ0FDVjtNQUNFQyxJQUFJLEVBQUUsQ0FBQztRQUFDTCxTQUFTLEVBQUU7TUFBTSxDQUFDLENBQUM7TUFDM0JNLFFBQVEsRUFBRTtRQUNSTixTQUFTLEVBQUUsTUFBTTtRQUNqQkMsUUFBUSxFQUFFLEtBQUs7UUFDZkMsSUFBSSxFQUFFO01BQ1I7SUFDRixDQUFDLEVBQ0Q7TUFDRUcsSUFBSSxFQUFFLENBQUM7UUFBQ0wsU0FBUyxFQUFFO01BQUUsQ0FBQyxDQUFDO01BQ3ZCTSxRQUFRLEVBQUUsSUFBSUMsc0JBQWEsQ0FBQyx3QkFBd0I7SUFDdEQsQ0FBQztFQUVMLENBQUM7RUFDRCxNQUFNQyxXQUFXLEdBQUcsQ0FBQ1YsY0FBYyxFQUFFSyxpQkFBaUIsQ0FBQztFQUV2RCxNQUFNTSxZQUFZLEdBQUdDLGNBQUssQ0FBQ0MsR0FBRyxFQUFFO0VBRWhDLE1BQU1DLGVBQWUsR0FBRyxJQUFBQyx3QkFBa0IsRUFBQ0wsV0FBVyxFQUFFQyxZQUFZLENBQUM7RUFFckUsTUFBTUssSUFBSSxHQUFHLE1BQU1GLGVBQWUsQ0FBQ2IsT0FBTyxFQUFFO0VBRTVDSCxNQUFNLENBQUNrQixJQUFJLENBQUMsQ0FBQ0MsT0FBTyxDQUFDO0lBQ25CZixTQUFTLEVBQUUsTUFBTTtJQUNqQkMsUUFBUSxFQUFFLEtBQUs7SUFDZkMsSUFBSSxFQUFFO0VBQ1IsQ0FBQyxDQUFDO0VBRUZOLE1BQU0sQ0FBQ2EsWUFBWSxDQUFDTyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUNYLElBQUksQ0FBQyxDQUFDVSxPQUFPLENBQUMsQ0FDM0MsU0FBUyxFQUNULEVBQUUsRUFDRjtJQUNFZixTQUFTLEVBQUUsTUFBTTtJQUNqQkMsUUFBUSxFQUFFLEtBQUs7SUFDZkMsSUFBSSxFQUFFO0VBQ1IsQ0FBQyxDQUNGLENBQUM7RUFFRixNQUFNZSxXQUFXLEdBQUcsTUFBTUwsZUFBZSxDQUFDUixVQUFVLENBQUM7SUFBQ0osU0FBUyxFQUFFO0VBQU0sQ0FBQyxDQUFDO0VBRXpFSixNQUFNLENBQUNxQixXQUFXLENBQUMsQ0FBQ0YsT0FBTyxDQUFDO0lBQzFCZixTQUFTLEVBQUUsTUFBTTtJQUNqQkMsUUFBUSxFQUFFLEtBQUs7SUFDZkMsSUFBSSxFQUFFO0VBQ1IsQ0FBQyxDQUFDO0VBRUYsTUFBTU4sTUFBTSxDQUFDZ0IsZUFBZSxDQUFDUixVQUFVLENBQUM7SUFBQ0osU0FBUyxFQUFFO0VBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQ2tCLE9BQU8sQ0FBQ0MsT0FBTyxDQUN2RSxJQUFJQyxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FDcEM7QUFDSCxDQUFDLENBQUMifQ==