-
Notifications
You must be signed in to change notification settings - Fork 1
/
basic.js
60 lines (51 loc) · 1.67 KB
/
basic.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
describe('simple proxy', function () {
var gateway, service;
before(function (done) {
gateway = execFile('./bin/gateway.js', ['-s', 'argyle@0.1.x', '-p', '50234']);
gateway.stdout.once('data', function (chunk) {
assert.ok(chunk.toString().match(/^argyle@0.1.x gateway listening .*on port 50234\.\.\.\n$/), 'settings overridden');
done();
});
});
before(function (done) {
var server = createServer(function (req, res) {
if (req.url === '/robots.txt') {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('User-agent: *\nDisallow: /');
}
else if (req.url === '/post') {
assert.equal(req.method, 'POST');
req.pipe(res);
}
});
service = amino.createService('argyle@0.1.5', server);
service.once('listening', done);
});
after(function (done) {
gateway.kill();
service.close(done);
});
it('waits a bit', function (done) {
setTimeout(done, 500);
});
it('should proxy basic request', function (done) {
amino.request('http://localhost:50234/robots.txt', function (err, res, body) {
assert.ifError(err);
assert.strictEqual(body, 'User-agent: *\nDisallow: /');
done();
});
});
it('should stream a request', function (done) {
var inputStream = new ValidationStream('abcd');
var outputStream = new ValidationStream('abcd', done);
var options = {
method: 'POST',
url: 'http://localhost:50234/post'
};
inputStream.pipe(amino.request(options)).pipe(outputStream);
for (var i = 0, len = inputStream.str.length; i < len; i++) {
inputStream.write(inputStream.str[i]);
}
inputStream.end();
});
});