@@ -9,6 +9,7 @@ const mocks = vi.hoisted(() => ({
99 createEnrichment : vi . fn ( ) ,
1010 createFromFile : vi . fn ( ) ,
1111 createWorkflowGroup : vi . fn ( ) ,
12+ deleteTables : vi . fn ( ) ,
1213 importFile : vi . fn ( ) ,
1314 replaceProjectedRows : vi . fn ( ) ,
1415 resolvePrincipal : vi . fn ( ) ,
@@ -24,6 +25,9 @@ vi.mock('@/lib/table/application/groups', () => ({
2425 createWorkflowTableGroup : { execute : mocks . createWorkflowGroup } ,
2526 updateWorkflowTableGroup : { execute : mocks . updateWorkflowGroup } ,
2627} ) )
28+ vi . mock ( '@/lib/table/application/copilot-table-lifecycle' , ( ) => ( {
29+ deleteCopilotTables : { execute : mocks . deleteTables } ,
30+ } ) )
2731vi . mock ( '@/lib/table/application/rows' , ( ) => ( {
2832 replaceProjectedWireRows : { execute : mocks . replaceProjectedRows } ,
2933} ) )
@@ -37,13 +41,15 @@ import {
3741 copilotCreateTableEnrichmentGroupPolicy ,
3842 copilotCreateTableFromWorkspaceFilePolicy ,
3943 copilotCreateWorkflowTableGroupPolicy ,
44+ copilotDeleteTablesPolicy ,
4045 copilotImportWorkspaceFileIntoTablePolicy ,
4146 copilotReplaceProjectedWireRowsPolicy ,
4247 copilotUpdateWorkflowTableGroupPolicy ,
4348 executeCopilotAddWorkflowTableGroupOutput ,
4449 executeCopilotCreateTableEnrichmentGroup ,
4550 executeCopilotCreateTableFromWorkspaceFile ,
4651 executeCopilotCreateWorkflowTableGroup ,
52+ executeCopilotDeleteTables ,
4753 executeCopilotImportWorkspaceFileIntoTable ,
4854 executeCopilotReplaceProjectedWireRows ,
4955 executeCopilotUpdateWorkflowTableGroup ,
@@ -94,10 +100,25 @@ describe('fixed Copilot Table application commands', () => {
94100 expect ( mocks . createFromFile ) . toHaveBeenCalledWith ( { principal, input } )
95101 } )
96102
103+ it ( 'uses one workspace-scoped Table command for best-effort multi-table deletion' , async ( ) => {
104+ mocks . deleteTables . mockResolvedValue ( { deleted : [ 'table-1' ] , failed : [ 'table-2' ] } )
105+ const input = { workspaceId : 'workspace-1' , tableIds : [ 'table-1' , 'table-2' ] }
106+
107+ await expect ( executeCopilotDeleteTables ( context , input ) ) . resolves . toEqual ( {
108+ deleted : [ 'table-1' ] ,
109+ failed : [ 'table-2' ] ,
110+ } )
111+
112+ expect ( mocks . resolvePrincipal ) . toHaveBeenCalledWith ( context )
113+ expect ( mocks . deleteTables ) . toHaveBeenCalledWith ( { principal, input } )
114+ expect ( mocks . deleteTables ) . toHaveBeenCalledTimes ( 1 )
115+ } )
116+
97117 it ( 'declares inherited request-rate admission and no direct provider cost for every command' , ( ) => {
98118 const policies = [
99119 copilotReplaceProjectedWireRowsPolicy ,
100120 copilotCreateWorkflowTableGroupPolicy ,
121+ copilotDeleteTablesPolicy ,
101122 copilotUpdateWorkflowTableGroupPolicy ,
102123 copilotAddWorkflowTableGroupOutputPolicy ,
103124 copilotCreateTableEnrichmentGroupPolicy ,
0 commit comments