@@ -14,21 +14,25 @@ const JsDaemon = require('./daemons/js')
1414describe ( 'basic' , ( ) => {
1515 let goDaemon
1616 let jsDaemon
17+ let js2Daemon
1718
1819 before ( ( done ) => {
1920 goDaemon = new GoDaemon ( )
2021 jsDaemon = new JsDaemon ( )
22+ js2Daemon = new JsDaemon ( { port : 1 } )
2123
2224 parallel ( [
2325 ( cb ) => goDaemon . start ( cb ) ,
24- ( cb ) => jsDaemon . start ( cb )
26+ ( cb ) => jsDaemon . start ( cb ) ,
27+ ( cb ) => js2Daemon . start ( cb )
2528 ] , done )
2629 } )
2730
2831 after ( ( done ) => {
29- parallel ( [
32+ series ( [
3033 ( cb ) => goDaemon . stop ( cb ) ,
31- ( cb ) => jsDaemon . stop ( cb )
34+ ( cb ) => jsDaemon . stop ( cb ) ,
35+ ( cb ) => js2Daemon . stop ( cb )
3236 ] , done )
3337 } )
3438
@@ -60,8 +64,36 @@ describe('basic', () => {
6064 ] , done )
6165 } )
6266
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+
6395 it ( 'cat file: go -> js' , ( done ) => {
64- const data = crypto . randomBytes ( 1024 * 5 )
96+ const data = crypto . randomBytes ( 1024 * 1024 )
6597 waterfall ( [
6698 ( cb ) => goDaemon . api . add ( data , cb ) ,
6799 ( res , cb ) => jsDaemon . api . cat ( res [ 0 ] . hash , cb ) ,
@@ -74,7 +106,8 @@ describe('basic', () => {
74106 } )
75107
76108 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 )
78111 waterfall ( [
79112 ( cb ) => jsDaemon . api . add ( data , cb ) ,
80113 ( res , cb ) => goDaemon . api . cat ( res [ 0 ] . hash , cb ) ,
@@ -85,4 +118,17 @@ describe('basic', () => {
85118 done ( )
86119 } )
87120 } )
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+ } )
88134} )
0 commit comments