@@ -15,6 +15,14 @@ var SOCKET = '/tmp/.' + uuid();
15
15
16
16
var SUFFIX = 'dc=test' ;
17
17
18
+ var LOG = new Logger ( {
19
+ name : 'ldapjs_unit_test' ,
20
+ stream : process . stderr ,
21
+ level : ( process . env . LOG_LEVEL || 'info' ) ,
22
+ serializers : Logger . stdSerializers ,
23
+ src : true
24
+ } ) ;
25
+
18
26
var ldap ;
19
27
var Attribute ;
20
28
var Change ;
@@ -148,13 +156,7 @@ test('setup', function (t) {
148
156
client = ldap . createClient ( {
149
157
connectTimeout : parseInt ( process . env . LDAP_CONNECT_TIMEOUT || 0 , 10 ) ,
150
158
socketPath : SOCKET ,
151
- log : new Logger ( {
152
- name : 'ldapjs_unit_test' ,
153
- stream : process . stderr ,
154
- level : ( process . env . LOG_LEVEL || 'info' ) ,
155
- serializers : Logger . stdSerializers ,
156
- src : true
157
- } )
159
+ log : LOG
158
160
} ) ;
159
161
t . ok ( client ) ;
160
162
t . end ( ) ;
@@ -622,13 +624,7 @@ test('setup action', function (t) {
622
624
var setupClient = ldap . createClient ( {
623
625
connectTimeout : parseInt ( process . env . LDAP_CONNECT_TIMEOUT || 0 , 10 ) ,
624
626
socketPath : SOCKET ,
625
- log : new Logger ( {
626
- name : 'ldapjs_unit_test' ,
627
- stream : process . stderr ,
628
- level : ( process . env . LOG_LEVEL || 'info' ) ,
629
- serializers : Logger . stdSerializers ,
630
- src : true
631
- } )
627
+ log : LOG
632
628
} ) ;
633
629
setupClient . on ( 'setup' , function ( clt , cb ) {
634
630
clt . bind ( BIND_DN , BIND_PW , function ( err , res ) {
@@ -652,13 +648,7 @@ test('setup reconnect', function (t) {
652
648
connectTimeout : parseInt ( process . env . LDAP_CONNECT_TIMEOUT || 0 , 10 ) ,
653
649
socketPath : SOCKET ,
654
650
reconnect : true ,
655
- log : new Logger ( {
656
- name : 'ldapjs_unit_test' ,
657
- stream : process . stderr ,
658
- level : ( process . env . LOG_LEVEL || 'info' ) ,
659
- serializers : Logger . stdSerializers ,
660
- src : true
661
- } )
651
+ log : LOG
662
652
} ) ;
663
653
rClient . on ( 'setup' , function ( clt , cb ) {
664
654
clt . bind ( BIND_DN , BIND_PW , function ( err , res ) {
@@ -715,13 +705,7 @@ test('setup abort', function (t) {
715
705
connectTimeout : parseInt ( process . env . LDAP_CONNECT_TIMEOUT || 0 , 10 ) ,
716
706
socketPath : SOCKET ,
717
707
reconnect : true ,
718
- log : new Logger ( {
719
- name : 'ldapjs_unit_test' ,
720
- stream : process . stderr ,
721
- level : ( process . env . LOG_LEVEL || 'info' ) ,
722
- serializers : Logger . stdSerializers ,
723
- src : true
724
- } )
708
+ log : LOG
725
709
} ) ;
726
710
var message = 'It\'s a trap!' ;
727
711
setupClient . on ( 'setup' , function ( clt , cb ) {
@@ -743,13 +727,7 @@ test('abort reconnect', function (t) {
743
727
connectTimeout : parseInt ( process . env . LDAP_CONNECT_TIMEOUT || 0 , 10 ) ,
744
728
socketPath : '/dev/null' ,
745
729
reconnect : true ,
746
- log : new Logger ( {
747
- name : 'ldapjs_unit_test' ,
748
- stream : process . stderr ,
749
- level : ( process . env . LOG_LEVEL || 'info' ) ,
750
- serializers : Logger . stdSerializers ,
751
- src : true
752
- } )
730
+ log : LOG
753
731
} ) ;
754
732
var retryCount = 0 ;
755
733
abortClient . on ( 'connectError' , function ( ) {
@@ -777,13 +755,7 @@ test('reconnect max retries', function (t) {
777
755
initialDelay : 10 ,
778
756
maxDelay : 100
779
757
} ,
780
- log : new Logger ( {
781
- name : 'ldapjs_unit_test' ,
782
- stream : process . stderr ,
783
- level : ( process . env . LOG_LEVEL || 'info' ) ,
784
- serializers : Logger . stdSerializers ,
785
- src : true
786
- } )
758
+ log : LOG
787
759
} ) ;
788
760
var count = 0 ;
789
761
rClient . on ( 'connectError' , function ( ) {
@@ -797,6 +769,63 @@ test('reconnect max retries', function (t) {
797
769
} ) ;
798
770
799
771
772
+ test ( 'reconnect on server close' , function ( t ) {
773
+ var clt = ldap . createClient ( {
774
+ socketPath : SOCKET ,
775
+ reconnect : true ,
776
+ log : LOG
777
+ } ) ;
778
+ clt . on ( 'setup' , function ( sclt , cb ) {
779
+ sclt . bind ( BIND_DN , BIND_PW , function ( err , res ) {
780
+ t . ifError ( err ) ;
781
+ cb ( err ) ;
782
+ } ) ;
783
+ } ) ;
784
+ clt . once ( 'connect' , function ( ) {
785
+ t . ok ( clt . socket ) ;
786
+ clt . once ( 'connect' , function ( ) {
787
+ t . ok ( true , 'successful reconnect' ) ;
788
+ clt . destroy ( ) ;
789
+ t . end ( ) ;
790
+ } ) ;
791
+
792
+ // Simulate server-side close
793
+ clt . socket . destroy ( ) ;
794
+ } ) ;
795
+ } ) ;
796
+
797
+
798
+ test ( 'no auto-reconnect on unbind' , function ( t ) {
799
+ var clt = ldap . createClient ( {
800
+ socketPath : SOCKET ,
801
+ reconnect : true ,
802
+ log : LOG
803
+ } ) ;
804
+ clt . on ( 'setup' , function ( sclt , cb ) {
805
+ sclt . bind ( BIND_DN , BIND_PW , function ( err , res ) {
806
+ t . ifError ( err ) ;
807
+ cb ( err ) ;
808
+ } ) ;
809
+ } ) ;
810
+ clt . once ( 'connect' , function ( ) {
811
+ clt . once ( 'connect' , function ( ) {
812
+ t . ifError ( new Error ( 'client should not reconnect' ) ) ;
813
+ } ) ;
814
+ clt . once ( 'close' , function ( ) {
815
+ t . ok ( true , 'initial close' ) ;
816
+ setImmediate ( function ( ) {
817
+ t . ok ( ! clt . connected , 'should not be connected' ) ;
818
+ t . ok ( ! clt . connecting , 'should not be connecting' ) ;
819
+ clt . destroy ( ) ;
820
+ t . end ( ) ;
821
+ } ) ;
822
+ } ) ;
823
+
824
+ clt . unbind ( ) ;
825
+ } ) ;
826
+ } ) ;
827
+
828
+
800
829
test ( 'abandon (GH-27)' , function ( t ) {
801
830
client . abandon ( 401876543 , function ( err ) {
802
831
t . ifError ( err ) ;
0 commit comments