UNPKG

1.38 kBJavaScriptView Raw
1'use strict';
2
3var net = require('net')
4 , tap = require('tap')
5 , test = tap.test
6 , createNamespace = require('../context').createNamespace
7 ;
8
9test("continuation-local state with net connection", function (t) {
10 t.plan(4);
11
12 var namespace = createNamespace('net');
13 namespace.run(function () {
14 namespace.set('test', 0xabad1dea);
15
16 var server;
17 namespace.run(function () {
18 namespace.set('test', 0x1337);
19
20 server = net.createServer(function (socket) {
21 t.equal(namespace.get('test'), 0x1337, "state has been mutated");
22 socket.on("data", function () {
23 t.equal(namespace.get('test'), 0x1337, "state is still preserved");
24 server.close();
25 socket.end("GoodBye");
26 });
27 });
28 server.listen(function () {
29 var address = server.address();
30 namespace.run(function () {
31 namespace.set("test", "MONKEY");
32 var client = net.connect(address.port, function () {
33 t.equal(namespace.get("test"), "MONKEY",
34 "state preserved for client connection");
35 client.write("Hello");
36 client.on("data", function () {
37 t.equal(namespace.get("test"), "MONKEY", "state preserved for client data");
38 t.end();
39 });
40 });
41 });
42 });
43 });
44 });
45});