@@ -71,6 +71,11 @@ import {
71
71
} from '@cardstack/billing/billing-queries' ;
72
72
import { resetCatalogRealms } from '../handlers/handle-fetch-catalog-realms' ;
73
73
import { APP_BOXEL_REALM_EVENT_EVENT_TYPE } from '@cardstack/runtime-common/matrix-constants' ;
74
+ import type {
75
+ MatrixEvent ,
76
+ RealmEventEvent ,
77
+ RealmEventEventContent ,
78
+ } from 'https://cardstack.com/base/matrix-event' ;
74
79
75
80
setGracefulCleanup ( ) ;
76
81
const testRealmURL = new URL ( 'http://127.0.0.1:4444/' ) ;
@@ -1058,28 +1063,19 @@ module(basename(__filename), function () {
1058
1063
} )
1059
1064
. set ( 'Accept' , 'application/vnd.card+json' ) ;
1060
1065
1061
- let incrementalEventMessage ;
1066
+ await waitForIncrementalIndexEvent ( getMessagesSinceTestStarted ) ;
1062
1067
1063
- await waitUntil (
1064
- async ( ) => {
1065
- let matrixMessages = await getMessagesSinceTestStarted ( ) ;
1066
- console . log ( matrixMessages ) ;
1067
-
1068
- incrementalEventMessage = matrixMessages . find (
1069
- ( m ) => m . content . indexType === 'incremental' ,
1070
- ) ;
1071
-
1072
- return incrementalEventMessage !== undefined ;
1073
- } ,
1074
- { timeoutMessage : 'no incremental event message received' } ,
1068
+ let messages = await getMessagesSinceTestStarted ( ) ;
1069
+ let incrementalEvent = findRealmEvent (
1070
+ messages ,
1071
+ 'index' ,
1072
+ 'incremental' ,
1075
1073
) ;
1076
1074
1077
- let incrementalEvent = incrementalEventMessage ! . content ;
1078
-
1079
- id = incrementalEvent . invalidations [ 0 ] . split ( '/' ) . pop ( ) ! ;
1075
+ id = incrementalEvent ! . content . invalidations [ 0 ] . split ( '/' ) . pop ( ) ! ;
1080
1076
assert . true ( uuidValidate ( id ! ) , 'card identifier is a UUID' ) ;
1081
1077
assert . strictEqual (
1082
- incrementalEvent . invalidations [ 0 ] ,
1078
+ incrementalEvent . content . invalidations [ 0 ] ,
1083
1079
`${ testRealmURL } CardDef/${ id } ` ,
1084
1080
) ;
1085
1081
@@ -1335,30 +1331,19 @@ module(basename(__filename), function () {
1335
1331
} )
1336
1332
. set ( 'Accept' , 'application/vnd.card+json' ) ;
1337
1333
1338
- await waitUntil ( async ( ) => {
1339
- let matrixMessages = await getMessagesSinceTestStarted ( ) ;
1340
- console . log ( matrixMessages ) ;
1341
- return matrixMessages . some (
1342
- ( m ) =>
1343
- m . type === APP_BOXEL_REALM_EVENT_EVENT_TYPE &&
1344
- m . content . eventName === 'index' &&
1345
- m . content . indexType === 'incremental' ,
1346
- ) ;
1347
- } ) ;
1334
+ await waitForIncrementalIndexEvent ( getMessagesSinceTestStarted ) ;
1348
1335
1349
1336
let messages = await getMessagesSinceTestStarted ( ) ;
1350
- let incrementalIndexInitiationEvent = messages . find (
1351
- ( m ) =>
1352
- m . type === APP_BOXEL_REALM_EVENT_EVENT_TYPE &&
1353
- m . content . eventName === 'index' &&
1354
- m . content . indexType === 'incremental-index-initiation' ,
1337
+ let incrementalIndexInitiationEvent = findRealmEvent (
1338
+ messages ,
1339
+ 'index' ,
1340
+ 'incremental-index-initiation' ,
1355
1341
) ;
1356
1342
1357
- let incrementalEvent = messages . find (
1358
- ( m ) =>
1359
- m . type === APP_BOXEL_REALM_EVENT_EVENT_TYPE &&
1360
- m . content . eventName === 'index' &&
1361
- m . content . indexType === 'incremental' ,
1343
+ let incrementalEvent = findRealmEvent (
1344
+ messages ,
1345
+ 'index' ,
1346
+ 'incremental' ,
1362
1347
) ;
1363
1348
1364
1349
assert . deepEqual ( incrementalIndexInitiationEvent ! . content , {
@@ -1479,30 +1464,19 @@ module(basename(__filename), function () {
1479
1464
. delete ( '/person-1' )
1480
1465
. set ( 'Accept' , 'application/vnd.card+json' ) ;
1481
1466
1482
- await waitUntil ( async ( ) => {
1483
- let matrixMessages = await getMessagesSinceTestStarted ( ) ;
1484
- console . log ( matrixMessages ) ;
1485
- return matrixMessages . some (
1486
- ( m ) =>
1487
- m . type === APP_BOXEL_REALM_EVENT_EVENT_TYPE &&
1488
- m . content . eventName === 'index' &&
1489
- m . content . indexType === 'incremental' ,
1490
- ) ;
1491
- } ) ;
1467
+ await waitForIncrementalIndexEvent ( getMessagesSinceTestStarted ) ;
1492
1468
1493
1469
let messages = await getMessagesSinceTestStarted ( ) ;
1494
- let incrementalIndexInitiationEvent = messages . find (
1495
- ( m ) =>
1496
- m . type === APP_BOXEL_REALM_EVENT_EVENT_TYPE &&
1497
- m . content . eventName === 'index' &&
1498
- m . content . indexType === 'incremental-index-initiation' ,
1470
+ let incrementalIndexInitiationEvent = findRealmEvent (
1471
+ messages ,
1472
+ 'index' ,
1473
+ 'incremental-index-initiation' ,
1499
1474
) ;
1500
1475
1501
- let incrementalEvent = messages . find (
1502
- ( m ) =>
1503
- m . type === APP_BOXEL_REALM_EVENT_EVENT_TYPE &&
1504
- m . content . eventName === 'index' &&
1505
- m . content . indexType === 'incremental' ,
1476
+ let incrementalEvent = findRealmEvent (
1477
+ messages ,
1478
+ 'index' ,
1479
+ 'incremental' ,
1506
1480
) ;
1507
1481
1508
1482
assert . deepEqual ( incrementalIndexInitiationEvent ! . content , {
@@ -4191,3 +4165,31 @@ let cardDefModuleDependencies = [
4191
4165
'https://cardstack.com/base/links-to-editor.gts' ,
4192
4166
'https://cardstack.com/base/links-to-many-component.gts' ,
4193
4167
] ;
4168
+
4169
+ async function waitForIncrementalIndexEvent (
4170
+ getMessagesSinceTestStarted : ( ) => Promise < MatrixEvent [ ] > ,
4171
+ ) {
4172
+ await waitUntil ( async ( ) => {
4173
+ let matrixMessages = await getMessagesSinceTestStarted ( ) ;
4174
+ console . log ( matrixMessages ) ;
4175
+ return matrixMessages . some (
4176
+ ( m ) =>
4177
+ m . type === APP_BOXEL_REALM_EVENT_EVENT_TYPE &&
4178
+ m . content . eventName === 'index' &&
4179
+ m . content . indexType === 'incremental' ,
4180
+ ) ;
4181
+ } ) ;
4182
+ }
4183
+
4184
+ function findRealmEvent (
4185
+ events : MatrixEvent [ ] ,
4186
+ eventName : string ,
4187
+ indexType : string ,
4188
+ ) : RealmEventEvent | undefined {
4189
+ return events . find (
4190
+ ( m ) =>
4191
+ m . type === APP_BOXEL_REALM_EVENT_EVENT_TYPE &&
4192
+ m . content . eventName === eventName &&
4193
+ m . content . indexType === indexType ,
4194
+ ) ;
4195
+ }
0 commit comments