@@ -195,6 +195,37 @@ describe('knowledge document application use cases', () => {
195195 expect ( mocks . recordAudit ) . not . toHaveBeenCalled ( )
196196 } )
197197
198+ it ( 'projects mutation audit entries for an owning legacy personal principal' , async ( ) => {
199+ mocks . resolveDocument . mockResolvedValueOnce ( {
200+ workspaceId : undefined ,
201+ legacyPersonalOwnerUserId : 'user-1' ,
202+ knowledgeBaseId : 'legacy-knowledge' ,
203+ knowledgeBase : { id : 'legacy-knowledge' , name : 'Personal docs' , userId : 'user-1' } ,
204+ documentId : document . id ,
205+ document : { ...document , knowledgeBaseId : 'legacy-knowledge' } ,
206+ } )
207+
208+ await deleteKnowledgeDocument . execute ( {
209+ principal : { kind : 'session' , userId : 'user-1' , sessionId : 'session-1' } ,
210+ input : { knowledgeBaseId : 'legacy-knowledge' , documentId : document . id , source : 'legacy' } ,
211+ } )
212+
213+ expect ( mocks . resolvePermission ) . not . toHaveBeenCalled ( )
214+ expect ( mocks . recordAudit ) . toHaveBeenCalledWith (
215+ expect . objectContaining ( {
216+ workspaceId : undefined ,
217+ actorId : 'user-1' ,
218+ action : 'document.deleted' ,
219+ resourceId : document . id ,
220+ metadata : expect . objectContaining ( {
221+ operation : 'knowledge.documents.delete' ,
222+ knowledgeBaseId : 'legacy-knowledge' ,
223+ actor : { kind : 'session' , userId : 'user-1' } ,
224+ } ) ,
225+ } )
226+ )
227+ } )
228+
198229 it ( 'conceals legacy personal documents from a non-owner' , async ( ) => {
199230 mocks . resolveKnowledgeBase . mockResolvedValueOnce ( {
200231 workspaceId : undefined ,
0 commit comments