55 triggers ,
66 receivedNotifications ,
77 resetNotifications ,
8- pgClient
8+ pgClient ,
9+ ensureDatabase ,
10+ getDatabaseUrl
911} from './setup' ;
1012import { waitForNotifications , assertNotificationPayload } from './utils' ;
1113import { createTriggers , TriggerManager , TriggerHandle } from '../src' ;
@@ -21,25 +23,28 @@ describe('CRUD Triggers', () => {
2123 beforeEach ( async ( ) => {
2224 resetNotifications ( ) ;
2325
26+ // Ensure database is initialized
27+ const { prisma : db } = await ensureDatabase ( ) ;
28+
2429 // Create a test user first with unique email
2530 const uniqueEmail = `test-${ Date . now ( ) } -${ Math . random ( ) . toString ( 36 ) . substring ( 2 , 11 ) } @example.com` ;
26- testUser = await prisma ! . user . create ( {
31+ testUser = await db . user . create ( {
2732 data : {
2833 email : uniqueEmail ,
2934 name : 'Test User'
3035 }
3136 } ) ;
3237
3338 // Create a test list
34- testList = await prisma ! . list . create ( {
39+ testList = await db . list . create ( {
3540 data : {
3641 name : 'Test List' ,
3742 ownerId : testUser . id
3843 }
3944 } ) ;
4045
4146 // Create a test item for update/delete operations
42- testItem = await prisma ! . item . create ( {
47+ testItem = await db . item . create ( {
4348 data : {
4449 name : 'Test Item for CRUD' ,
4550 status : 'PENDING' ,
@@ -71,15 +76,17 @@ describe('CRUD Triggers', () => {
7176 }
7277
7378 // Clear any remaining test data
74- await prisma ! . item . deleteMany ( { } ) ;
75- await prisma ! . list . deleteMany ( { } ) ;
79+ const { prisma : db } = await ensureDatabase ( ) ;
80+ await db . item . deleteMany ( { } ) ;
81+ await db . list . deleteMany ( { } ) ;
7682 } ) ;
7783
7884 describe ( 'INSERT Triggers' , ( ) => {
7985 test ( 'basic INSERT trigger should fire on item creation' , async ( ) => {
8086 // Create a FRESH TriggerManager for this test to avoid condition bleeding
87+ await ensureDatabase ( ) ;
8188 currentTriggerManager = createTriggers < NonNullable < typeof prisma > > (
82- process . env . DATABASE_URL !
89+ getDatabaseUrl ( )
8390 ) ;
8491
8592 // Create function first
@@ -136,7 +143,7 @@ describe('CRUD Triggers', () => {
136143 test ( 'conditional INSERT trigger should only fire when condition is met' , async ( ) => {
137144 // Create a FRESH TriggerManager for this test
138145 currentTriggerManager = createTriggers < NonNullable < typeof prisma > > (
139- process . env . DATABASE_URL !
146+ getDatabaseUrl ( )
140147 ) ;
141148
142149 // Create function first
@@ -207,7 +214,7 @@ describe('CRUD Triggers', () => {
207214 test ( 'INSERT trigger using raw SQL condition should work' , async ( ) => {
208215 // Create a FRESH TriggerManager for this test
209216 currentTriggerManager = createTriggers < NonNullable < typeof prisma > > (
210- process . env . DATABASE_URL !
217+ getDatabaseUrl ( )
211218 ) ;
212219
213220 // Create function first
@@ -280,7 +287,7 @@ describe('CRUD Triggers', () => {
280287 test ( 'basic UPDATE trigger should fire on any item update' , async ( ) => {
281288 // Create a FRESH TriggerManager for this test
282289 currentTriggerManager = createTriggers < NonNullable < typeof prisma > > (
283- process . env . DATABASE_URL !
290+ getDatabaseUrl ( )
284291 ) ;
285292
286293 // Create function first
@@ -337,7 +344,7 @@ describe('CRUD Triggers', () => {
337344 test ( 'UPDATE trigger should only fire when watched column changes' , async ( ) => {
338345 // Create a FRESH TriggerManager for this test
339346 currentTriggerManager = createTriggers < NonNullable < typeof prisma > > (
340- process . env . DATABASE_URL !
347+ getDatabaseUrl ( )
341348 ) ;
342349
343350 // Create function first
@@ -402,7 +409,7 @@ describe('CRUD Triggers', () => {
402409 test ( 'conditional UPDATE trigger should only fire when condition is met' , async ( ) => {
403410 // Create a FRESH TriggerManager for this test
404411 currentTriggerManager = createTriggers < NonNullable < typeof prisma > > (
405- process . env . DATABASE_URL !
412+ getDatabaseUrl ( )
406413 ) ;
407414
408415 // Create function first
@@ -466,7 +473,7 @@ describe('CRUD Triggers', () => {
466473 test ( 'UPDATE trigger with field comparison condition should work' , async ( ) => {
467474 // Create a FRESH TriggerManager for this test
468475 currentTriggerManager = createTriggers < NonNullable < typeof prisma > > (
469- process . env . DATABASE_URL !
476+ getDatabaseUrl ( )
470477 ) ;
471478
472479 // Create function first
@@ -533,7 +540,7 @@ describe('CRUD Triggers', () => {
533540 test ( 'basic DELETE trigger should fire on item deletion' , async ( ) => {
534541 // Create a FRESH TriggerManager for this test
535542 currentTriggerManager = createTriggers < NonNullable < typeof prisma > > (
536- process . env . DATABASE_URL !
543+ getDatabaseUrl ( )
537544 ) ;
538545
539546 // Create function first
@@ -595,7 +602,7 @@ describe('CRUD Triggers', () => {
595602
596603 // Create a FRESH TriggerManager for this test
597604 currentTriggerManager = createTriggers < NonNullable < typeof prisma > > (
598- process . env . DATABASE_URL !
605+ getDatabaseUrl ( )
599606 ) ;
600607
601608 // Create function first
@@ -667,7 +674,7 @@ describe('CRUD Triggers', () => {
667674
668675 // Create a FRESH TriggerManager for this test
669676 currentTriggerManager = createTriggers < NonNullable < typeof prisma > > (
670- process . env . DATABASE_URL !
677+ getDatabaseUrl ( )
671678 ) ;
672679
673680 // Create function first
@@ -731,7 +738,7 @@ describe('CRUD Triggers', () => {
731738 test ( 'trigger with multiple events should work for all operations' , async ( ) => {
732739 // Create a FRESH TriggerManager for this test
733740 currentTriggerManager = createTriggers < NonNullable < typeof prisma > > (
734- process . env . DATABASE_URL !
741+ getDatabaseUrl ( )
735742 ) ;
736743
737744 // Create function first
0 commit comments