@@ -344,4 +344,54 @@ describe("Task Runs V2", () => {
344344 expect ( result2 ) . toEqual ( [ ] ) ;
345345 }
346346 ) ;
347+
348+ clickhouseTest (
349+ "should be able to insert payloads with a duplicate path" ,
350+ async ( { clickhouseContainer } ) => {
351+ const client = new ClickhouseClient ( {
352+ name : "test" ,
353+ url : clickhouseContainer . getConnectionUrl ( ) ,
354+ } ) ;
355+
356+ const insertPayloads = insertRawTaskRunPayloads ( client , {
357+ async_insert : 0 , // turn off async insert for this test
358+ } ) ;
359+
360+ const [ insertPayloadsError , insertPayloadsResult ] = await insertPayloads ( [
361+ {
362+ run_id : "run_1234" ,
363+ created_at : Date . now ( ) ,
364+ payload : {
365+ data : {
366+ title : {
367+ id : "123" ,
368+ } ,
369+ "title.id" : 123 ,
370+ } ,
371+ } ,
372+ } ,
373+ ] ) ;
374+
375+ expect ( insertPayloadsError ) . toBeNull ( ) ;
376+ expect ( insertPayloadsResult ) . toEqual ( expect . objectContaining ( { executed : true } ) ) ;
377+ expect ( insertPayloadsResult ?. summary ?. written_rows ) . toEqual ( "1" ) ;
378+
379+ const queryPayloads = client . query ( {
380+ name : "query-raw-task-run-payloads" ,
381+ query : "SELECT * FROM trigger_dev.raw_task_runs_payload_v1" ,
382+ schema : z . object ( {
383+ run_id : z . string ( ) ,
384+ created_at : z . coerce . date ( ) ,
385+ payload : z . unknown ( ) ,
386+ } ) ,
387+ } ) ;
388+
389+ const [ queryPayloadsError , resultPayloads ] = await queryPayloads ( { run_id : "run_1234" } ) ;
390+
391+ expect ( queryPayloadsError ) . toBeNull ( ) ;
392+ expect ( resultPayloads ) . toEqual (
393+ expect . arrayContaining ( [ expect . objectContaining ( { run_id : "run_1234" } ) ] )
394+ ) ;
395+ }
396+ ) ;
347397} ) ;
0 commit comments