@@ -305,42 +305,48 @@ test('Sends queue publish spans with `rpc(...)`', async ({ page, baseURL }) => {
305305} ) ;
306306
307307test ( 'Sends queue process spans with `schema(...).rpc(...)`' , async ( { page, baseURL } ) => {
308- const httpTransactionPromise = waitForTransaction ( 'supabase-nextjs' , transactionEvent => {
308+ const consumerSpanPromise = waitForTransaction ( 'supabase-nextjs' , transactionEvent => {
309309 return (
310- transactionEvent ?. contexts ?. trace ?. op === 'http.server' &&
311- transactionEvent ?. transaction === 'GET /api/queue/consumer-schema'
310+ transactionEvent ?. contexts ?. trace ?. op === 'queue.process' && transactionEvent ?. transaction === 'supabase.db.rpc'
312311 ) ;
313312 } ) ;
314313
315314 const result = await fetch ( `${ baseURL } /api/queue/consumer-schema` ) ;
316- const transactionEvent = await httpTransactionPromise ;
315+ const consumerEvent = await consumerSpanPromise ;
317316
318317 expect ( result . status ) . toBe ( 200 ) ;
319318 expect ( await result . json ( ) ) . toEqual (
320- expect . objectContaining ( { data : [ expect . objectContaining ( { message : { title : 'Test Todo' } , msg_id : 1 } ) ] } ) ,
319+ expect . objectContaining ( {
320+ data : [
321+ expect . objectContaining ( {
322+ message : {
323+ title : 'Test Todo' ,
324+ } ,
325+ msg_id : expect . any ( Number ) ,
326+ } ) ,
327+ ] ,
328+ } ) ,
321329 ) ;
322330
323- expect ( transactionEvent . spans ) . toHaveLength ( 2 ) ;
324- expect ( transactionEvent . spans ) . toContainEqual ( {
331+ expect ( consumerEvent . contexts . trace ) . toEqual ( {
325332 data : {
326333 'messaging.destination.name' : 'todos' ,
327334 'messaging.system' : 'supabase' ,
328335 'messaging.message.id' : '1' ,
336+ 'messaging.message.receive.latency' : expect . any ( Number ) ,
329337 'sentry.op' : 'queue.process' ,
330338 'sentry.origin' : 'auto.db.supabase' ,
339+ 'sentry.source' : 'route' ,
331340 } ,
332- description : 'supabase.db.rpc' ,
333341 op : 'queue.process' ,
334342 origin : 'auto.db.supabase' ,
335- parent_span_id : expect . stringMatching ( / [ a - f 0 - 9 ] { 16 } / ) ,
336- span_id : expect . stringMatching ( / [ a - f 0 - 9 ] { 16 } / ) ,
337- start_timestamp : expect . any ( Number ) ,
343+ parent_span_id : expect . any ( String ) ,
344+ span_id : expect . any ( String ) ,
338345 status : 'ok' ,
339- timestamp : expect . any ( Number ) ,
340- trace_id : expect . stringMatching ( / [ a - f 0 - 9 ] { 32 } / ) ,
346+ trace_id : expect . any ( String ) ,
341347 } ) ;
342348
343- expect ( transactionEvent . breadcrumbs ) . toContainEqual ( {
349+ expect ( consumerEvent . breadcrumbs ) . toContainEqual ( {
344350 timestamp : expect . any ( Number ) ,
345351 type : 'supabase' ,
346352 category : 'db.rpc.pop' ,
@@ -353,42 +359,47 @@ test('Sends queue process spans with `schema(...).rpc(...)`', async ({ page, bas
353359} ) ;
354360
355361test ( 'Sends queue process spans with `rpc(...)`' , async ( { page, baseURL } ) => {
356- const httpTransactionPromise = waitForTransaction ( 'supabase-nextjs' , transactionEvent => {
362+ const consumerSpanPromise = waitForTransaction ( 'supabase-nextjs' , transactionEvent => {
357363 return (
358- transactionEvent ?. contexts ?. trace ?. op === 'http.server' &&
359- transactionEvent ?. transaction === 'GET /api/queue/consumer-rpc'
364+ transactionEvent ?. contexts ?. trace ?. op === 'queue.process' && transactionEvent ?. transaction === 'supabase.db.rpc'
360365 ) ;
361366 } ) ;
362367
363368 const result = await fetch ( `${ baseURL } /api/queue/consumer-rpc` ) ;
364- const transactionEvent = await httpTransactionPromise ;
369+ const consumerEvent = await consumerSpanPromise ;
365370
366371 expect ( result . status ) . toBe ( 200 ) ;
367372 expect ( await result . json ( ) ) . toEqual (
368- expect . objectContaining ( { data : [ expect . objectContaining ( { message : { title : 'Test Todo' } , msg_id : 2 } ) ] } ) ,
373+ expect . objectContaining ( {
374+ data : [
375+ expect . objectContaining ( {
376+ message : {
377+ title : 'Test Todo' ,
378+ } ,
379+ msg_id : expect . any ( Number ) ,
380+ } ) ,
381+ ] ,
382+ } ) ,
369383 ) ;
370-
371- expect ( transactionEvent . spans ) . toHaveLength ( 2 ) ;
372- expect ( transactionEvent . spans ) . toContainEqual ( {
384+ expect ( consumerEvent . contexts . trace ) . toEqual ( {
373385 data : {
374386 'messaging.destination.name' : 'todos' ,
375387 'messaging.system' : 'supabase' ,
376388 'messaging.message.id' : '2' ,
389+ 'messaging.message.receive.latency' : expect . any ( Number ) ,
377390 'sentry.op' : 'queue.process' ,
378391 'sentry.origin' : 'auto.db.supabase' ,
392+ 'sentry.source' : 'route' ,
379393 } ,
380- description : 'supabase.db.rpc' ,
381394 op : 'queue.process' ,
382395 origin : 'auto.db.supabase' ,
383- parent_span_id : expect . stringMatching ( / [ a - f 0 - 9 ] { 16 } / ) ,
384- span_id : expect . stringMatching ( / [ a - f 0 - 9 ] { 16 } / ) ,
385- start_timestamp : expect . any ( Number ) ,
396+ parent_span_id : expect . any ( String ) ,
397+ span_id : expect . any ( String ) ,
386398 status : 'ok' ,
387- timestamp : expect . any ( Number ) ,
388- trace_id : expect . stringMatching ( / [ a - f 0 - 9 ] { 32 } / ) ,
399+ trace_id : expect . any ( String ) ,
389400 } ) ;
390401
391- expect ( transactionEvent . breadcrumbs ) . toContainEqual ( {
402+ expect ( consumerEvent . breadcrumbs ) . toContainEqual ( {
392403 timestamp : expect . any ( Number ) ,
393404 type : 'supabase' ,
394405 category : 'db.rpc.pop' ,
@@ -505,41 +516,3 @@ test('Sends queue batch publish spans with `rpc(...)`', async ({ page, baseURL }
505516 } ,
506517 } ) ;
507518} ) ;
508-
509- test ( 'Sends `read` queue operation spans with `rpc(...)`' , async ( { page, baseURL } ) => {
510- const httpTransactionPromise = waitForTransaction ( 'supabase-nextjs' , transactionEvent => {
511- return (
512- transactionEvent ?. contexts ?. trace ?. op === 'http.server' && transactionEvent ?. transaction === 'GET /api/queue/receiver-rpc'
513- ) ;
514- } ) ;
515- const result = await fetch ( `${ baseURL } /api/queue/receiver-rpc` ) ;
516- const transactionEvent = await httpTransactionPromise ;
517-
518- expect ( result . status ) . toBe ( 200 ) ;
519- expect ( await result . json ( ) ) . toEqual (
520- expect . objectContaining ( { data : [
521- expect . objectContaining ( { message : { title : 'Test Todo 1' } , msg_id : 3 } ) ,
522- expect . objectContaining ( { message : { title : 'Test Todo 2' } , msg_id : 4 } ) ,
523- ] } ) ,
524- ) ;
525-
526- expect ( transactionEvent . spans ) . toHaveLength ( 2 ) ;
527- expect ( transactionEvent . spans ) . toContainEqual ( {
528- data : {
529- 'messaging.destination.name' : 'todos' ,
530- 'messaging.system' : 'supabase' ,
531- 'messaging.message.id' : '3,4' ,
532- 'sentry.op' : 'queue.receive' ,
533- 'sentry.origin' : 'auto.db.supabase' ,
534- } ,
535- description : 'supabase.db.rpc' ,
536- op : 'queue.receive' ,
537- origin : 'auto.db.supabase' ,
538- parent_span_id : expect . stringMatching ( / [ a - f 0 - 9 ] { 16 } / ) ,
539- span_id : expect . stringMatching ( / [ a - f 0 - 9 ] { 16 } / ) ,
540- start_timestamp : expect . any ( Number ) ,
541- status : 'ok' ,
542- timestamp : expect . any ( Number ) ,
543- trace_id : expect . stringMatching ( / [ a - f 0 - 9 ] { 32 } / ) ,
544- } ) ;
545- } ) ;
0 commit comments