1'use strict';
2const common = require('../common');
3const fs = require('fs');
4const readline = require('readline');
5const path = require('path');
6
7async function processLineByLine_SymbolAsyncError(filename) {
8  const fileStream = fs.createReadStream(filename);
9  const rl = readline.createInterface({
10    input: fileStream,
11    crlfDelay: Infinity
12  });
13  // eslint-disable-next-line no-unused-vars
14  for await (const line of rl) {
15    /* check SymbolAsyncIterator `errorListener` */
16  }
17}
18
19const f = path.join(__dirname, 'file.txt');
20
21// catch-able SymbolAsyncIterator `errorListener` error
22processLineByLine_SymbolAsyncError(f).catch(common.expectsError({
23  code: 'ENOENT',
24  message: `ENOENT: no such file or directory, open '${f}'`
25}));
26
27async function processLineByLine_InterfaceErrorEvent(filename) {
28  const fileStream = fs.createReadStream(filename);
29  const rl = readline.createInterface({
30    input: fileStream,
31    crlfDelay: Infinity
32  });
33  rl.on('error', common.expectsError({
34    code: 'ENOENT',
35    message: `ENOENT: no such file or directory, open '${f}'`
36  }));
37}
38
39// check Interface 'error' event
40processLineByLine_InterfaceErrorEvent(f);
41