11import { Readable } from 'node:stream'
22import { isAsyncIteratorObject } from '@orpc/shared'
3- import { ErrorEvent , getEventMeta , UnknownEvent , withEventMeta } from '@orpc/standard-server'
3+ import { ErrorEvent , getEventMeta , withEventMeta } from '@orpc/standard-server'
44import { toEventIterator , toEventStream } from './event-source'
55
66describe ( 'toEventIterator' , ( ) => {
@@ -9,7 +9,7 @@ describe('toEventIterator', () => {
99 async pull ( controller ) {
1010 controller . enqueue ( 'event: message\ndata: {"order": 1}\nid: id-1\nretry: 10000\n\n' )
1111 controller . enqueue ( 'event: message\ndata: {"order": 2}\nid: id-2\n\n' )
12- controller . enqueue ( 'event: done\ndata: {"order": 3}\nid: id-3\nretry: 30000' )
12+ controller . enqueue ( 'event: done\ndata: {"order": 3}\nid: id-3\nretry: 30000\n\n ' )
1313 controller . close ( )
1414 } ,
1515 } ) . pipeThrough ( new TextEncoderStream ( ) ) )
@@ -40,8 +40,6 @@ describe('toEventIterator', () => {
4040
4141 return true
4242 } )
43-
44- await expect ( Readable . toWeb ( stream ) . getReader ( ) . closed ) . resolves . toBe ( undefined )
4543 } )
4644
4745 it ( 'without dont event' , async ( ) => {
@@ -88,7 +86,7 @@ describe('toEventIterator', () => {
8886 async pull ( controller ) {
8987 controller . enqueue ( 'event: message\ndata: {"order": 1}\nid: id-1\nretry: 10000\n\n' )
9088 controller . enqueue ( 'event: message\ndata: {"order": 2}\nid: id-2\n\n' )
91- controller . enqueue ( 'event: error\ndata: {"order": 3}\nid: id-3\nretry: 30000' )
89+ controller . enqueue ( 'event: error\ndata: {"order": 3}\nid: id-3\nretry: 30000\n\n ' )
9290 controller . close ( )
9391 } ,
9492 } ) . pipeThrough ( new TextEncoderStream ( ) ) )
@@ -123,46 +121,6 @@ describe('toEventIterator', () => {
123121 await expect ( Readable . toWeb ( stream ) . getReader ( ) . closed ) . resolves . toBe ( undefined )
124122 } )
125123
126- it ( 'with unknown event' , async ( ) => {
127- const stream = Readable . fromWeb ( new ReadableStream < string > ( {
128- async pull ( controller ) {
129- controller . enqueue ( 'event: message\ndata: {"order": 1}\nid: id-1\nretry: 10000\n\n' )
130- controller . enqueue ( 'event: message\ndata: {"order": 2}\nid: id-2\n\n' )
131- controller . enqueue ( 'event: unknown\ndata: {"order": 3}\nid: id-3\nretry: 30000' )
132- controller . close ( )
133- } ,
134- } ) . pipeThrough ( new TextEncoderStream ( ) ) )
135-
136- const generator = toEventIterator ( stream )
137- expect ( generator ) . toSatisfy ( isAsyncIteratorObject )
138-
139- expect ( await generator . next ( ) ) . toSatisfy ( ( { done, value } ) => {
140- expect ( done ) . toEqual ( false )
141- expect ( value ) . toEqual ( { order : 1 } )
142- expect ( getEventMeta ( value ) ) . toEqual ( expect . objectContaining ( { id : 'id-1' , retry : 10000 } ) )
143-
144- return true
145- } )
146-
147- expect ( await generator . next ( ) ) . toSatisfy ( ( { done, value } ) => {
148- expect ( done ) . toEqual ( false )
149- expect ( value ) . toEqual ( { order : 2 } )
150- expect ( getEventMeta ( value ) ) . toEqual ( expect . objectContaining ( { id : 'id-2' , retry : undefined } ) )
151-
152- return true
153- } )
154-
155- await expect ( generator . next ( ) ) . rejects . toSatisfy ( ( error : any ) => {
156- expect ( error ) . toBeInstanceOf ( UnknownEvent )
157- expect ( error . data ) . toEqual ( { order : 3 } )
158- expect ( getEventMeta ( error ) ) . toEqual ( expect . objectContaining ( { id : 'id-3' , retry : 30000 } ) )
159-
160- return true
161- } )
162-
163- await expect ( Readable . toWeb ( stream ) . getReader ( ) . closed ) . resolves . toBe ( undefined )
164- } )
165-
166124 it ( 'when .return() before finish reading' , async ( ) => {
167125 const stream = Readable . fromWeb ( new ReadableStream < string > ( {
168126 async pull ( controller ) {
@@ -205,7 +163,7 @@ describe('toEventStream', () => {
205163
206164 expect ( ( await reader . read ( ) ) . value ) . toEqual ( 'event: message\nid: id-1\ndata: {"order":1}\n\n' )
207165 expect ( ( await reader . read ( ) ) . value ) . toEqual ( 'event: message\nretry: 20000\ndata: {"order":2}\n\n' )
208- expect ( ( await reader . read ( ) ) . value ) . toEqual ( 'event: message\ndata: \ n\n' )
166+ expect ( ( await reader . read ( ) ) . value ) . toEqual ( 'event: message\n\n' )
209167 expect ( ( await reader . read ( ) ) . value ) . toEqual ( 'event: done\nretry: 40000\nid: id-4\ndata: {"order":4}\n\n' )
210168 expect ( ( await reader . read ( ) ) . done ) . toEqual ( true )
211169 } )
@@ -224,8 +182,8 @@ describe('toEventStream', () => {
224182
225183 expect ( ( await reader . read ( ) ) . value ) . toEqual ( 'event: message\nid: id-1\ndata: {"order":1}\n\n' )
226184 expect ( ( await reader . read ( ) ) . value ) . toEqual ( 'event: message\nretry: 20000\ndata: {"order":2}\n\n' )
227- expect ( ( await reader . read ( ) ) . value ) . toEqual ( 'event: message\ndata: \ n\n' )
228- expect ( ( await reader . read ( ) ) . value ) . toEqual ( 'event: error\nretry: 40000\nid: id-4\ndata: \ n\n' )
185+ expect ( ( await reader . read ( ) ) . value ) . toEqual ( 'event: message\n\n' )
186+ expect ( ( await reader . read ( ) ) . value ) . toEqual ( 'event: error\nretry: 40000\nid: id-4\n\n' )
229187 expect ( ( await reader . read ( ) ) . done ) . toEqual ( true )
230188 } )
231189
@@ -243,7 +201,7 @@ describe('toEventStream', () => {
243201
244202 expect ( ( await reader . read ( ) ) . value ) . toEqual ( 'event: message\nid: id-1\ndata: {"order":1}\n\n' )
245203 expect ( ( await reader . read ( ) ) . value ) . toEqual ( 'event: message\nretry: 20000\ndata: {"order":2}\n\n' )
246- expect ( ( await reader . read ( ) ) . value ) . toEqual ( 'event: message\ndata: \ n\n' )
204+ expect ( ( await reader . read ( ) ) . value ) . toEqual ( 'event: message\n\n' )
247205 expect ( ( await reader . read ( ) ) . value ) . toEqual ( 'event: error\nretry: 40000\nid: id-4\ndata: {"order":4}\n\n' )
248206 expect ( ( await reader . read ( ) ) . done ) . toEqual ( true )
249207 } )
0 commit comments