@@ -719,6 +719,23 @@ setup('WriteStream', mustCall((client, server) => {
719
719
writer . end ( ) ;
720
720
} ) ) ;
721
721
722
+ setup ( 'environment' , { SSH2NODETEST : 'foo' } , mustCall ( ( client , server ) => {
723
+ const path_ = '/tmp/foo.txt' ;
724
+ const handle_ = Buffer . from ( 'node.js' ) ;
725
+ const pflags_ = ( OPEN_MODE . TRUNC | OPEN_MODE . CREAT | OPEN_MODE . WRITE ) ;
726
+ server . on ( 'OPEN' , mustCall ( ( id , path , pflags ) => {
727
+ assert ( id === 0 , `Wrong request id: ${ id } ` ) ;
728
+ assert ( path === path_ , `Wrong path: ${ path } ` ) ;
729
+ assert ( pflags === pflags_ , `Wrong flags: ${ flagsToHuman ( pflags ) } ` ) ;
730
+ server . handle ( id , handle_ ) ;
731
+ server . end ( ) ;
732
+ } ) ) ;
733
+ client . open ( path_ , 'w' , mustCall ( ( err , handle ) => {
734
+ assert ( ! err , `Unexpected open() error: ${ err } ` ) ;
735
+ assert . deepStrictEqual ( handle , handle_ , 'handle mismatch' ) ;
736
+ } ) ) ;
737
+ } ) ) ;
738
+
722
739
{
723
740
const { client, server } = setup_ (
724
741
'SFTP server aborts with exit-status' ,
@@ -757,7 +774,12 @@ setup('WriteStream', mustCall((client, server) => {
757
774
758
775
759
776
// =============================================================================
760
- function setup ( title , cb ) {
777
+ function setup ( title , env , cb ) {
778
+ if ( typeof env === 'function' ) {
779
+ cb = env ;
780
+ env = undefined ;
781
+ }
782
+
761
783
const { client, server } = setupSimple ( DEBUG , title ) ;
762
784
let clientSFTP ;
763
785
let serverSFTP ;
@@ -768,7 +790,7 @@ function setup(title, cb) {
768
790
} , 2 ) ;
769
791
770
792
client . on ( 'ready' , mustCall ( ( ) => {
771
- client . sftp ( mustCall ( ( err , sftp ) => {
793
+ client . sftp ( env , mustCall ( ( err , sftp ) => {
772
794
assert ( ! err , `[${ title } ] Unexpected client sftp start error: ${ err } ` ) ;
773
795
sftp . on ( 'close' , mustCall ( ( ) => {
774
796
client . end ( ) ;
0 commit comments