@@ -1202,6 +1202,47 @@ for (let i = 0; i < 12; i++) {
12021202 fi . emit ( 'data' , 'Node.js\n' ) ;
12031203 }
12041204
1205+ // Call write after close
1206+ {
1207+ const [ rli , fi ] = getInterface ( { terminal } ) ;
1208+ rli . question ( 'What\'s your name?' , common . mustCall ( ( name ) => {
1209+ assert . strictEqual ( name , 'Node.js' ) ;
1210+ rli . close ( ) ;
1211+ assert . throws ( ( ) => {
1212+ rli . write ( 'I said Node.js' ) ;
1213+ } , {
1214+ name : 'Error' ,
1215+ code : 'ERR_USE_AFTER_CLOSE'
1216+ } ) ;
1217+ } ) ) ;
1218+ fi . emit ( 'data' , 'Node.js\n' ) ;
1219+ }
1220+
1221+ // Call pause/resume after close
1222+ {
1223+ const [ rli , fi ] = getInterface ( { terminal } ) ;
1224+ rli . question ( 'What\'s your name?' , common . mustCall ( ( name ) => {
1225+ assert . strictEqual ( name , 'Node.js' ) ;
1226+ rli . close ( ) ;
1227+ // No 'resume' nor 'pause' event should be emitted after close
1228+ rli . on ( 'resume' , common . mustNotCall ( ) ) ;
1229+ rli . on ( 'pause' , common . mustNotCall ( ) ) ;
1230+ assert . throws ( ( ) => {
1231+ rli . pause ( ) ;
1232+ } , {
1233+ name : 'Error' ,
1234+ code : 'ERR_USE_AFTER_CLOSE'
1235+ } ) ;
1236+ assert . throws ( ( ) => {
1237+ rli . resume ( ) ;
1238+ } , {
1239+ name : 'Error' ,
1240+ code : 'ERR_USE_AFTER_CLOSE'
1241+ } ) ;
1242+ } ) ) ;
1243+ fi . emit ( 'data' , 'Node.js\n' ) ;
1244+ }
1245+
12051246 // Can create a new readline Interface with a null output argument
12061247 {
12071248 const [ rli , fi ] = getInterface ( { output : null , terminal } ) ;
0 commit comments