summaryrefslogtreecommitdiff
path: root/lambda-calcul/javascript
diff options
context:
space:
mode:
Diffstat (limited to 'lambda-calcul/javascript')
-rw-r--r--lambda-calcul/javascript/index.js5
-rw-r--r--lambda-calcul/javascript/src/client.js6
-rw-r--r--lambda-calcul/javascript/test/client.test.js19
3 files changed, 27 insertions, 3 deletions
diff --git a/lambda-calcul/javascript/index.js b/lambda-calcul/javascript/index.js
index 5c080d1..c01c39e 100644
--- a/lambda-calcul/javascript/index.js
+++ b/lambda-calcul/javascript/index.js
@@ -23,7 +23,7 @@ const waitForEnterToBePressed = () => {
output: process.stdout,
});
- return readlineInterface.question('Done. Press Enter to finish.')
+ return readlineInterface.question(`Done. Press Enter to unregister ${playerName}.`)
.then(() => readlineInterface.close());
};
@@ -34,4 +34,5 @@ client.start()
})
.then(() => solveNextChallenge(token))
.then(() => waitForEnterToBePressed())
- .then(() => console.log('Done done!'));
+ .then(() => client.unregister(token))
+ .then(() => console.log(`${playerName} unregistered!`));
diff --git a/lambda-calcul/javascript/src/client.js b/lambda-calcul/javascript/src/client.js
index 88ea253..08b967d 100644
--- a/lambda-calcul/javascript/src/client.js
+++ b/lambda-calcul/javascript/src/client.js
@@ -30,10 +30,16 @@ const newClient = ({
})
.then(({ data }) => data);
+ const unregister = (token) => axios({
+ method: 'DELETE',
+ url: `${challengerURL}/api/register?token=${token}`,
+ });
+
return {
nextChallenge,
solve,
start,
+ unregister,
};
};
diff --git a/lambda-calcul/javascript/test/client.test.js b/lambda-calcul/javascript/test/client.test.js
index 8b68a61..8a5ebff 100644
--- a/lambda-calcul/javascript/test/client.test.js
+++ b/lambda-calcul/javascript/test/client.test.js
@@ -40,7 +40,6 @@ describe('λ-calculator', () => {
});
it('retrieves next challenge', () => {
-
challenger.on('request', (request, response) => {
expect(request.method).toBe('GET');
expect(request.url).toBe('/api/challenge?token=SomeToken');
@@ -80,4 +79,22 @@ describe('λ-calculator', () => {
const client = LC.newClient({ parser, interpreter, printer });
expect(client.solve('Some challenge')).toBe('Expression to print');
});
+
+ it('unregisters user', () => {
+ let challengerCalled = false;
+
+ challenger.on('request', (request, response) => {
+ challengerCalled = true;
+ expect(request.method).toBe('DELETE');
+ expect(request.url).toBe('/api/register?token=SomeToken');
+ response.end();
+ });
+
+ const client = LC.newClient({
+ playerName: 'John Smith',
+ challengerURL: `http://localhost:${port}`,
+ });
+ return client.unregister('SomeToken')
+ .then(() => expect(challengerCalled).toBe(true));
+ });
});