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')); }); });