diff options
Diffstat (limited to 'lambda-calcul/javascript/test')
| -rw-r--r-- | lambda-calcul/javascript/test/client.test.js | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/lambda-calcul/javascript/test/client.test.js b/lambda-calcul/javascript/test/client.test.js new file mode 100644 index 0000000..8c4f98f --- /dev/null +++ b/lambda-calcul/javascript/test/client.test.js @@ -0,0 +1,41 @@ +const http = require('http'); +const LC = require('../src/client'); + +describe('λ-calculator', () => { + let challenger, port; + + beforeEach((done) => { + challenger = http.createServer(); + challenger.listen(0, () => { + port = challenger.address().port; + done(); + }); + }); + + afterEach((done) => { + challenger.close(() => done()); + }); + + it('registers to challenger', () => { + challenger.on('request', (request, response) => { + expect(request.method).toBe('POST'); + expect(request.url).toBe('/api/register'); + expect(request.headers).toHaveProperty('content-type', 'application/json;charset=utf-8'); + + let payload = ''; + request.on('data', (d) => (payload += d)); + request.on('end', () => { + expect(payload).toEqual('"John Smith"'); + }); + + response.end('SomeToken'); + }); + + const client = LC.newClient({ + playerName: 'John Smith', + challengerURL: `http://localhost:${port}`, + }); + return client.start() + .then((token) => expect(token).toBe('SomeToken')); + }); +}); |
