Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/proxy/index.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/* eslint-disable max-len */
const proxyApp = require('express')();
const bodyParser = require('body-parser');
const routes = require('./routes');
const routes = require('./routes').router;
const config = require('../config');
const db = require('../db');
const { GIT_PROXY_SERVER_PORT: proxyHttpPort } = require('../config/env').Vars;
Expand Down
18 changes: 11 additions & 7 deletions src/proxy/routes/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,12 +39,7 @@ router.use(
message = action.blockedMessage;
}

// ERROR PCT LINE -- MOVE THIS TO HELPER
const errorMessage = `ERR\t${message}`;
const len = 6 + errorMessage.length;

const prefix = len.toString(16);
const packetMessage = `00${prefix}\x02${errorMessage}\n0000`;
packetMessage = handleMessage(message);

res.status(200).send(packetMessage);

Expand All @@ -69,4 +64,13 @@ router.use(
}),
);

module.exports = router;
const handleMessage = async(message) => {
const errorMessage = `ERR\t${message}`;
const len = 6 + new TextEncoder().encode(errorMessage).length;

const prefix = len.toString(16);
const packetMessage = `${prefix.padStart(4, '0')}\x02${errorMessage}\n0000`;
return packetMessage
}

module.exports = {router, handleMessage};
19 changes: 19 additions & 0 deletions test/testProxyRoute.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@

const handleMessage = require('../src/proxy/routes').handleMessage;
const chai = require('chai');

const expect = chai.expect;

// Use this test as a template
describe('proxy error messages', async () => {

it('should handle short messages', async function () {
const res = await handleMessage('one');
expect(res).to.contain('one');
});

it('should handle emoji messages', async function () {
const res = await handleMessage('❌ push failed: too many errors');
expect(res).to.contain('❌');
});
});