-
-
Notifications
You must be signed in to change notification settings - Fork 737
/
test_back_2.js
75 lines (65 loc) · 2.13 KB
/
test_back_2.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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
'use strict';
var test = require('tap').test;
var nock = require('../');
var nockBack = nock.back;
var http = require("http");
var rimraf = require('rimraf');
var fs = require('fs');
var originalMode;
var fixture;
function rimrafOnEnd(t) {
t.once('end', function() {
rimraf.sync(fixture);
});
}
test('setup', function(t) {
originalMode = nockBack.currentMode;
nock.enableNetConnect();
nockBack.fixtures = __dirname + "/fixtures";
fixture = nockBack.fixtures + '/recording_test.json'
rimraf.sync(fixture);
nockBack.setMode("record");
t.end();
});
test('recording', {skip: process.env.AIRPLANE}, function(t) {
nockBack('recording_test.json', function(nockDone) {
http.get('http://google.com', function(res) {
res.once('end', function() {
nockDone();
var fixtureContent = JSON.parse(fs.readFileSync(fixture, {encoding: 'utf8'}));
t.equal(fixtureContent.length, 1);
fixtureContent = fixtureContent[0];
t.equal(fixtureContent.method, 'GET');
t.equal(fixtureContent.path, '/');
t.ok(fixtureContent.status == 302 || fixtureContent.status == 301);
t.end();
});
// Streams start in 'paused' mode and must be started.
// See https://nodejs.org/api/stream.html#stream_class_stream_readable
res.resume();
});
});
rimrafOnEnd(t);
});
test('passes custom options to recorder', {skip: process.env.AIRPLANE}, function(t) {
nockBack('recording_test.json', { recorder: { enable_reqheaders_recording: true } }, function(nockDone) {
http.get('http://google.com', function(res) {
res.once('end', function() {
nockDone();
var fixtureContent = JSON.parse(fs.readFileSync(fixture, {encoding: 'utf8'}));
t.equal(fixtureContent.length, 1);
fixtureContent = fixtureContent[0];
t.ok(fixtureContent.reqheaders);
t.end();
});
// Streams start in 'paused' mode and must be started.
// See https://nodejs.org/api/stream.html#stream_class_stream_readable
res.resume();
});
});
rimrafOnEnd(t);
});
test('teardown', function(t) {
nockBack.setMode(originalMode);
t.end();
});