Files
api/test/mockWs.js
Jaco Greeff b0c7e3a8ae Initial add
2017-11-18 08:38:18 +01:00

56 lines
1.1 KiB
JavaScript

// ISC, Copyright 2017 Jaco Greeff
const { Server } = require('mock-socket');
const TEST_WS_URL = 'ws://localhost:9955';
let server;
function mockWs (requests) {
server = new Server(TEST_WS_URL);
let requestCount = 0;
server.on('message', (body) => {
try {
const request = requests[requestCount];
const result = request.reply;
const response = request.error
? {
id: request.id,
jsonrpc: '2.0',
error: {
code: request.error.code,
message: request.error.message
}
}
: {
id: request.id,
jsonrpc: '2.0',
result: result.result
};
scope.body[request.method] = body;
requestCount++;
server.send(JSON.stringify(response));
} catch (error) {
console.error('mock:onmessage', body, error);
}
});
const scope = {
body: {},
requests: 0,
server,
done: () => server.stop(),
isDone: () => requestCount === requests.length
};
return scope;
}
module.exports = {
TEST_WS_URL,
mockWs
};