@@ -14,21 +14,25 @@ const JsDaemon = require('./daemons/js')
14
14
describe ( 'basic' , ( ) => {
15
15
let goDaemon
16
16
let jsDaemon
17
+ let js2Daemon
17
18
18
19
before ( ( done ) => {
19
20
goDaemon = new GoDaemon ( )
20
21
jsDaemon = new JsDaemon ( )
22
+ js2Daemon = new JsDaemon ( { port : 1 } )
21
23
22
24
parallel ( [
23
25
( cb ) => goDaemon . start ( cb ) ,
24
- ( cb ) => jsDaemon . start ( cb )
26
+ ( cb ) => jsDaemon . start ( cb ) ,
27
+ ( cb ) => js2Daemon . start ( cb )
25
28
] , done )
26
29
} )
27
30
28
31
after ( ( done ) => {
29
- parallel ( [
32
+ series ( [
30
33
( cb ) => goDaemon . stop ( cb ) ,
31
- ( cb ) => jsDaemon . stop ( cb )
34
+ ( cb ) => jsDaemon . stop ( cb ) ,
35
+ ( cb ) => js2Daemon . stop ( cb )
32
36
] , done )
33
37
} )
34
38
@@ -60,8 +64,36 @@ describe('basic', () => {
60
64
] , done )
61
65
} )
62
66
67
+ it ( 'connect js <-> js' , ( done ) => {
68
+ let jsId
69
+ let js2Id
70
+
71
+ series ( [
72
+ ( cb ) => parallel ( [
73
+ ( cb ) => jsDaemon . api . id ( cb ) ,
74
+ ( cb ) => js2Daemon . api . id ( cb )
75
+ ] , ( err , ids ) => {
76
+ expect ( err ) . to . not . exist
77
+ jsId = ids [ 0 ]
78
+ js2Id = ids [ 1 ]
79
+ cb ( )
80
+ } ) ,
81
+ ( cb ) => js2Daemon . api . swarm . connect ( jsId . addresses [ 0 ] , cb ) ,
82
+ ( cb ) => jsDaemon . api . swarm . connect ( js2Id . addresses [ 0 ] , cb ) ,
83
+ ( cb ) => parallel ( [
84
+ ( cb ) => js2Daemon . api . swarm . peers ( cb ) ,
85
+ ( cb ) => jsDaemon . api . swarm . peers ( cb )
86
+ ] , ( err , peers ) => {
87
+ expect ( err ) . to . not . exist
88
+ expect ( peers [ 0 ] . map ( ( p ) => p . peer . toB58String ( ) ) ) . to . include ( jsId . id )
89
+ expect ( peers [ 1 ] . map ( ( p ) => p . peer . toB58String ( ) ) ) . to . include ( js2Id . id )
90
+ cb ( )
91
+ } )
92
+ ] , done )
93
+ } )
94
+
63
95
it ( 'cat file: go -> js' , ( done ) => {
64
- const data = crypto . randomBytes ( 1024 * 5 )
96
+ const data = crypto . randomBytes ( 1024 * 1024 )
65
97
waterfall ( [
66
98
( cb ) => goDaemon . api . add ( data , cb ) ,
67
99
( res , cb ) => jsDaemon . api . cat ( res [ 0 ] . hash , cb ) ,
@@ -74,7 +106,8 @@ describe('basic', () => {
74
106
} )
75
107
76
108
it ( 'cat file: js -> go' , ( done ) => {
77
- const data = crypto . randomBytes ( 1024 * 5 )
109
+ // This will fail once the size is increased to 64512 = 1024 * 63
110
+ const data = crypto . randomBytes ( 1024 * 63 - 1 )
78
111
waterfall ( [
79
112
( cb ) => jsDaemon . api . add ( data , cb ) ,
80
113
( res , cb ) => goDaemon . api . cat ( res [ 0 ] . hash , cb ) ,
@@ -85,4 +118,17 @@ describe('basic', () => {
85
118
done ( )
86
119
} )
87
120
} )
121
+
122
+ it ( 'cat file: js -> js' , ( done ) => {
123
+ const data = crypto . randomBytes ( 1024 * 1024 )
124
+ waterfall ( [
125
+ ( cb ) => js2Daemon . api . add ( data , cb ) ,
126
+ ( res , cb ) => jsDaemon . api . cat ( res [ 0 ] . hash , cb ) ,
127
+ ( stream , cb ) => stream . pipe ( bl ( cb ) )
128
+ ] , ( err , file ) => {
129
+ expect ( err ) . to . not . exist
130
+ expect ( file ) . to . be . eql ( data )
131
+ done ( )
132
+ } )
133
+ } )
88
134
} )
0 commit comments