11
2+ import { Readable } from ' node:stream'
23import * as stream from ' node:stream/promises'
34import { generate } from ' csv-generate'
45import { parse } from ' ../lib/index.js'
@@ -15,8 +16,10 @@ describe 'API stream.finished', ->
1516 await stream .finished parser
1617 records .length .should .eql 10
1718
18- it ' resolved with `to_line` ' , ->
19+ it ' aborted ( with generate()) ' , ->
1920 # See https://github.com/adaltas/node-csv/issues/333
21+ # See https://github.com/adaltas/node-csv/issues/410
22+ # Prevent `Error [ERR_STREAM_PREMATURE_CLOSE]: Premature close`
2023 records = []
2124 parser = generate (length : 10 ).pipe parse to_line : 3
2225 parser .on ' readable' , () =>
@@ -25,6 +28,24 @@ describe 'API stream.finished', ->
2528 await stream .finished parser
2629 records .length .should .eql 3
2730
31+ it .skip ' aborted (with Readable)' , ->
32+ # See https://github.com/adaltas/node-csv/issues/333
33+ # See https://github.com/adaltas/node-csv/issues/410
34+ # Prevent `Error [ERR_STREAM_PREMATURE_CLOSE]: Premature close`
35+ records = []
36+ reader = new Readable
37+ highWaterMark : 10
38+ read : (size ) ->
39+ for i in [0 ... size]
40+ this .push " #{ size} ,#{ i} \n "
41+ parser = reader .pipe parse to_line : 3
42+ parser .on ' readable' , () =>
43+ while (record = parser .read ()) isnt null
44+ records .push record
45+ await stream .finished parser
46+ console .log records
47+ records .length .should .eql 3
48+
2849 it ' rejected on error' , ->
2950 parser = parse to_line : 3
3051 parser .write ' a,b,c\n '
0 commit comments