|  | @@ -0,0 +1,64 @@
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import {fork} from 'child_process';
 | 
	
		
			
				|  |  | +import tape from 'tape';
 | 
	
		
			
				|  |  | +import _test from 'tape-promise';
 | 
	
		
			
				|  |  | +import http from 'http';
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +const tapetest = _test(tape);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +tapetest('service', async function testService(t) {
 | 
	
		
			
				|  |  | +    const server = fork('build/service.js'),
 | 
	
		
			
				|  |  | +        connstring = 'http://localhost:8080';
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    try {
 | 
	
		
			
				|  |  | +        await waitPro();
 | 
	
		
			
				|  |  | +        const data = await requestPro(connstring + '/');
 | 
	
		
			
				|  |  | +        console.log('data', data);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    catch(e) {
 | 
	
		
			
				|  |  | +        console.log('error somewhere', e);
 | 
	
		
			
				|  |  | +        t.fail('error somewhere');
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    server.kill();
 | 
	
		
			
				|  |  | +    t.end();
 | 
	
		
			
				|  |  | +});
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +function waitPro(n = 1000) {
 | 
	
		
			
				|  |  | +    return new Promise(function pro(resolve, reject) {
 | 
	
		
			
				|  |  | +        setTimeout(resolve, n);
 | 
	
		
			
				|  |  | +    });
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +function requestPro(reqopts, data) {
 | 
	
		
			
				|  |  | +    return new Promise(function prot(resolve, reject) {
 | 
	
		
			
				|  |  | +        try {
 | 
	
		
			
				|  |  | +            let req = http.request(reqopts, function received(resp) {
 | 
	
		
			
				|  |  | +                let str = '';
 | 
	
		
			
				|  |  | +                resp.on('data', function p(part) {
 | 
	
		
			
				|  |  | +                    str += part;
 | 
	
		
			
				|  |  | +                });
 | 
	
		
			
				|  |  | +                resp.on('end', function done() {
 | 
	
		
			
				|  |  | +                    if( resp.statusCode >= 400 && resp.statusCode <= 599 ) {
 | 
	
		
			
				|  |  | +                        reject(str);
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                    else {
 | 
	
		
			
				|  |  | +                        resolve(str);
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                });
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +            if( data ) {
 | 
	
		
			
				|  |  | +                req.write(data);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            req.end();
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        catch(e) {
 | 
	
		
			
				|  |  | +            reject(e);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    });
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 |