@@ -1202,6 +1202,47 @@ for (let i = 0; i < 12; i++) {
1202
1202
fi . emit ( 'data' , 'Node.js\n' ) ;
1203
1203
}
1204
1204
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
+
1205
1246
// Can create a new readline Interface with a null output argument
1206
1247
{
1207
1248
const [ rli , fi ] = getInterface ( { output : null , terminal } ) ;
0 commit comments