@@ -61,6 +61,7 @@ import {
61
61
import { setupMockMatrix } from ' ../helpers/mock-matrix' ;
62
62
import { setupApplicationTest } from ' ../helpers/setup' ;
63
63
import { pauseTest } from ' @ember/test-helpers' ;
64
+ import { suspendGlobalErrorHook } from ' ../helpers/uncaught-exceptions' ;
64
65
65
66
let matrixRoomId = ' ' ;
66
67
let maybeBoomShouldBoom = true ;
@@ -1139,49 +1140,64 @@ module('Acceptance | Commands tests', function (hooks) {
1139
1140
);
1140
1141
});
1141
1142
1142
- test (' a command that errors when executing allows retry' , async function (assert ) {
1143
- await visitOperatorMode ({
1144
- stacks: [
1145
- [
1143
+ module (' suspending global error hook' , (hooks ) => {
1144
+ suspendGlobalErrorHook (hooks );
1145
+
1146
+ test (' a command that errors when executing allows retry' , async function (assert ) {
1147
+ await visitOperatorMode ({
1148
+ stacks: [
1149
+ [
1150
+ {
1151
+ id: ` ${testRealmURL }Person/hassan ` ,
1152
+ format: ' isolated' ,
1153
+ },
1154
+ ],
1155
+ ],
1156
+ });
1157
+
1158
+ await click (' [data-test-maybe-boom-via-ai-assistant]' );
1159
+ await waitUntil (() => getRoomIds ().length > 0 );
1160
+
1161
+ await click (' [data-test-open-ai-assistant-room-button]' );
1162
+ let roomId = getRoomIds ().pop ()! ;
1163
+ let message = getRoomEvents (roomId ).pop ()! ;
1164
+ let boxelMessageData = JSON .parse (message .content .data );
1165
+ let toolName = boxelMessageData .context .tools [0 ].function .name ;
1166
+ maybeBoomShouldBoom = true ;
1167
+ simulateRemoteMessage (roomId , ' @aibot:localhost' , {
1168
+ body: ' Will it boom?' ,
1169
+ msgtype: APP_BOXEL_MESSAGE_MSGTYPE ,
1170
+ formatted_body: ' Will it boom?' ,
1171
+ format: ' org.matrix.custom.html' ,
1172
+ [APP_BOXEL_COMMAND_REQUESTS_KEY ]: [
1146
1173
{
1147
- id: ` ${testRealmURL }Person/hassan ` ,
1148
- format: ' isolated' ,
1174
+ id: ' 8406a6eb-a3d5-494f-a7f3-ae9880115756' ,
1175
+ name: toolName ,
1176
+ arguments: {},
1149
1177
},
1150
1178
],
1151
- ],
1152
- });
1153
-
1154
- await click (' [data-test-maybe-boom-via-ai-assistant]' );
1155
- await waitUntil (() => getRoomIds ().length > 0 );
1156
-
1157
- await click (' [data-test-open-ai-assistant-room-button]' );
1158
- let roomId = getRoomIds ().pop ()! ;
1159
- let message = getRoomEvents (roomId ).pop ()! ;
1160
- let boxelMessageData = JSON .parse (message .content .data );
1161
- let toolName = boxelMessageData .context .tools [0 ].function .name ;
1179
+ });
1162
1180
1163
- simulateRemoteMessage (roomId , ' @aibot:localhost' , {
1164
- body: ' Will it boom?' ,
1165
- msgtype: APP_BOXEL_MESSAGE_MSGTYPE ,
1166
- formatted_body: ' Will it boom?' ,
1167
- format: ' org.matrix.custom.html' ,
1168
- [APP_BOXEL_COMMAND_REQUESTS_KEY ]: [
1169
- {
1170
- id: ' 8406a6eb-a3d5-494f-a7f3-ae9880115756' ,
1171
- name: toolName ,
1172
- arguments: {},
1173
- },
1174
- ],
1181
+ await settled ();
1182
+ let commandResultEvents = await getRoomEvents (roomId ).filter (
1183
+ (event ) => event .type === APP_BOXEL_COMMAND_RESULT_EVENT_TYPE ,
1184
+ );
1185
+ assert .equal (
1186
+ commandResultEvents .length ,
1187
+ 0 ,
1188
+ ' No command result event dispatched' ,
1189
+ );
1190
+ maybeBoomShouldBoom = false ;
1191
+ await click (' [data-test-retry-command-button]' );
1192
+ commandResultEvents = await getRoomEvents (roomId ).filter (
1193
+ (event ) => event .type === APP_BOXEL_COMMAND_RESULT_EVENT_TYPE ,
1194
+ );
1195
+ assert .equal (
1196
+ commandResultEvents .length ,
1197
+ 1 ,
1198
+ ' No command result event dispatched' ,
1199
+ );
1200
+ assert .dom (' [data-test-apply-state="applied"]' ).exists ();
1175
1201
});
1176
-
1177
- await settled ();
1178
- let commandResultEvents = await getRoomEvents (roomId ).filter (
1179
- (event ) => event .type === APP_BOXEL_COMMAND_RESULT_EVENT_TYPE ,
1180
- );
1181
- assert .equal (
1182
- commandResultEvents .length ,
1183
- 0 ,
1184
- ' No command result event dispatched' ,
1185
- );
1186
1202
});
1187
1203
});
0 commit comments