11import { strictEqual } from 'node:assert'
22import { promisify } from 'node:util'
3+ import { Readable , finished } from 'node:stream'
34import rdf from '@zazuko/env'
45import quadToNTriples from '@rdfjs/to-ntriples'
56import withServer from 'express-as-promise/withServer.js'
67import getStream from 'get-stream'
7- import { isReadableStream as isReadable , isWritableStream as isWritable } from 'is-stream'
8- import { finished } from 'readable-stream'
98import postUnbound from '../post.js'
109
1110const post = postUnbound . bind ( { env : rdf } )
1211
1312const ns = rdf . namespace ( 'http://example.org/' )
1413
1514describe ( 'post' , ( ) => {
16- it ( 'should return a writable stream' , async ( ) => {
17- await withServer ( async server => {
18- const baseUrl = await server . listen ( )
19-
20- const stream = post ( { endpoint : baseUrl , graph : 'default' } )
21-
22- strictEqual ( isReadable ( stream ) , false )
23- strictEqual ( isWritable ( stream ) , true )
24-
25- stream . end ( )
26- } )
27- } )
28-
2915 it ( 'should send a POST request' , async ( ) => {
3016 await withServer ( async server => {
3117 let called = false
@@ -40,10 +26,7 @@ describe('post', () => {
4026 const baseUrl = await server . listen ( )
4127 const stream = post ( { endpoint : baseUrl , graph : ns . graph1 } )
4228
43- stream . write ( quad )
44- stream . end ( )
45-
46- await promisify ( finished ) ( stream )
29+ await getStream ( Readable . from ( [ quad ] ) . pipe ( stream ) )
4730
4831 strictEqual ( called , true )
4932 } )
@@ -62,9 +45,7 @@ describe('post', () => {
6245 const baseUrl = await server . listen ( )
6346 const stream = post ( { endpoint : baseUrl , graph : ns . graph1 } )
6447
65- stream . end ( )
66-
67- await promisify ( finished ) ( stream )
48+ await getStream ( Readable . from ( [ ] ) . pipe ( stream ) )
6849
6950 strictEqual ( called , false )
7051 } )
@@ -84,8 +65,7 @@ describe('post', () => {
8465 const baseUrl = await server . listen ( )
8566 const stream = post ( { endpoint : baseUrl , graph : ns . graph1 } )
8667
87- stream . write ( quad )
88- stream . end ( )
68+ await getStream ( Readable . from ( [ quad ] ) . pipe ( stream ) )
8969
9070 await promisify ( finished ) ( stream )
9171
@@ -115,13 +95,7 @@ describe('post', () => {
11595 const baseUrl = await server . listen ( )
11696 const stream = post ( { endpoint : baseUrl , graph : ns . graph1 } )
11797
118- quads . forEach ( quad => {
119- stream . write ( quad )
120- } )
121-
122- stream . end ( )
123-
124- await promisify ( finished ) ( stream )
98+ await getStream ( Readable . from ( quads ) . pipe ( stream ) )
12599
126100 strictEqual ( content [ quads [ 0 ] . graph . value ] , expected )
127101 } )
@@ -151,13 +125,7 @@ describe('post', () => {
151125 const baseUrl = await server . listen ( )
152126 const stream = post ( { endpoint : baseUrl , graph : 'default' } )
153127
154- quads . forEach ( quad => {
155- stream . write ( quad )
156- } )
157-
158- stream . end ( )
159-
160- await promisify ( finished ) ( stream )
128+ await getStream ( Readable . from ( quads ) . pipe ( stream ) )
161129
162130 strictEqual ( typeof graph , 'undefined' )
163131 strictEqual ( content , expected )
@@ -178,8 +146,7 @@ describe('post', () => {
178146 const baseUrl = await server . listen ( )
179147 const stream = post ( { endpoint : baseUrl , user : 'testuser' , password : 'testpassword' , graph : ns . graph1 } )
180148
181- stream . write ( quad )
182- stream . end ( )
149+ await getStream ( Readable . from ( [ quad ] ) . pipe ( stream ) )
183150
184151 await promisify ( finished ) ( stream )
185152
@@ -198,13 +165,10 @@ describe('post', () => {
198165 const baseUrl = await server . listen ( )
199166 const stream = post ( { endpoint : baseUrl , graph : ns . graph1 } )
200167
201- stream . write ( quad )
202- stream . end ( )
203-
204168 let error = null
205169
206170 try {
207- await promisify ( finished ) ( stream )
171+ await getStream ( Readable . from ( [ quad ] ) . pipe ( stream ) )
208172 } catch ( err ) {
209173 error = err
210174 }
0 commit comments