UNPKG

6.46 kBJavaScriptView Raw
1'use strict';
2
3var dns = require('dns')
4 , tap = require('tap')
5 , test = tap.test
6 , createNamespace = require('../context.js').createNamespace
7 ;
8
9test("continuation-local state with MakeCallback and DNS module", function (t) {
10 t.plan(11);
11
12 var namespace = createNamespace('dns');
13 namespace.run(function () {
14 namespace.set('test', 0xabad1dea);
15
16 t.test("dns.lookup", function (t) {
17 namespace.run(function () {
18 namespace.set('test', 808);
19 t.equal(namespace.get('test'), 808, "state has been mutated");
20
21 dns.lookup('www.newrelic.com', 4, function (err, addresses) {
22 t.notOk(err, "lookup succeeded");
23 t.ok(addresses.length > 0, "some results were found");
24
25 t.equal(namespace.get('test'), 808,
26 "mutated state has persisted to dns.lookup's callback");
27
28 t.end();
29 });
30 });
31 });
32
33 t.test("dns.resolve", function (t) {
34 namespace.run(function () {
35 namespace.set('test', 909);
36 t.equal(namespace.get('test'), 909, "state has been mutated");
37
38 dns.resolve('newrelic.com', 'NS', function (err, addresses) {
39 t.notOk(err, "lookup succeeded");
40 t.ok(addresses.length > 0, "some results were found");
41
42 t.equal(namespace.get('test'), 909,
43 "mutated state has persisted to dns.resolve's callback");
44
45 t.end();
46 });
47 });
48 });
49
50 t.test("dns.resolve4", function (t) {
51 namespace.run(function () {
52 namespace.set('test', 303);
53 t.equal(namespace.get('test'), 303, "state has been mutated");
54
55 dns.resolve4('www.newrelic.com', function (err, addresses) {
56 t.notOk(err, "lookup succeeded");
57 t.ok(addresses.length > 0, "some results were found");
58
59 t.equal(namespace.get('test'), 303,
60 "mutated state has persisted to dns.resolve4's callback");
61
62 t.end();
63 });
64 });
65 });
66
67 t.test("dns.resolve6", function (t) {
68 namespace.run(function () {
69 namespace.set('test', 101);
70 t.equal(namespace.get('test'), 101, "state has been mutated");
71
72 dns.resolve6('google.com', function (err, addresses) {
73 t.notOk(err, "lookup succeeded");
74 t.ok(addresses.length > 0, "some results were found");
75
76 t.equal(namespace.get('test'), 101,
77 "mutated state has persisted to dns.resolve6's callback");
78
79 t.end();
80 });
81 });
82 });
83
84 t.test("dns.resolveCname", function (t) {
85 namespace.run(function () {
86 namespace.set('test', 212);
87 t.equal(namespace.get('test'), 212, "state has been mutated");
88
89 dns.resolveCname('mail.newrelic.com', function (err, addresses) {
90 t.notOk(err, "lookup succeeded");
91 t.ok(addresses.length > 0, "some results were found");
92
93 t.equal(namespace.get('test'), 212,
94 "mutated state has persisted to dns.resolveCname's callback");
95
96 t.end();
97 });
98 });
99 });
100
101 t.test("dns.resolveMx", function (t) {
102 namespace.run(function () {
103 namespace.set('test', 707);
104 t.equal(namespace.get('test'), 707, "state has been mutated");
105
106 dns.resolveMx('newrelic.com', function (err, addresses) {
107 t.notOk(err, "lookup succeeded");
108 t.ok(addresses.length > 0, "some results were found");
109
110 t.equal(namespace.get('test'), 707,
111 "mutated state has persisted to dns.resolveMx's callback");
112
113 t.end();
114 });
115 });
116 });
117
118 t.test("dns.resolveNs", function (t) {
119 namespace.run(function () {
120 namespace.set('test', 717);
121 t.equal(namespace.get('test'), 717, "state has been mutated");
122
123 dns.resolveNs('newrelic.com', function (err, addresses) {
124 t.notOk(err, "lookup succeeded");
125 t.ok(addresses.length > 0, "some results were found");
126
127 t.equal(namespace.get('test'), 717,
128 "mutated state has persisted to dns.resolveNs's callback");
129
130 t.end();
131 });
132 });
133 });
134
135 t.test("dns.resolveTxt", function (t) {
136 namespace.run(function () {
137 namespace.set('test', 2020);
138 t.equal(namespace.get('test'), 2020, "state has been mutated");
139
140 dns.resolveTxt('newrelic.com', function (err, addresses) {
141 t.notOk(err, "lookup succeeded");
142 t.ok(addresses.length > 0, "some results were found");
143
144 t.equal(namespace.get('test'), 2020,
145 "mutated state has persisted to dns.resolveTxt's callback");
146
147 t.end();
148 });
149 });
150 });
151
152 t.test("dns.resolveSrv", function (t) {
153 namespace.run(function () {
154 namespace.set('test', 9000);
155 t.equal(namespace.get('test'), 9000, "state has been mutated");
156
157 dns.resolveSrv('_xmpp-server._tcp.google.com', function (err, addresses) {
158 t.notOk(err, "lookup succeeded");
159 t.ok(addresses.length > 0, "some results were found");
160
161 t.equal(namespace.get('test'), 9000,
162 "mutated state has persisted to dns.resolveSrv's callback");
163
164 t.end();
165 });
166 });
167 });
168
169 t.test("dns.resolveNaptr", function (t) {
170 // dns.resolveNaptr only in Node > 0.9.x
171 if (!dns.resolveNaptr) return t.end();
172
173 namespace.run(function () {
174 namespace.set('test', 'Polysix');
175 t.equal(namespace.get('test'), 'Polysix', "state has been mutated");
176
177 dns.resolveNaptr('columbia.edu', function (err, addresses) {
178 t.notOk(err, "lookup succeeded");
179 t.ok(addresses.length > 0, "some results were found");
180
181 t.equal(namespace.get('test'), 'Polysix',
182 "mutated state has persisted to dns.resolveNaptr's callback");
183
184 t.end();
185 });
186 });
187 });
188
189 t.test("dns.reverse", function (t) {
190 namespace.run(function () {
191 namespace.set('test', 1000);
192 t.equal(namespace.get('test'), 1000, "state has been mutated");
193
194 dns.reverse('204.93.223.144', function (err, addresses) {
195 t.notOk(err, "lookup succeeded");
196 t.ok(addresses.length > 0, "some results were found");
197
198 t.equal(namespace.get('test'), 1000,
199 "mutated state has persisted to dns.reverse's callback");
200
201 t.end();
202 });
203 });
204 });
205 });
206});