import assert from 'node:assert/strict'; import test from 'node:test'; import { buildSelectedAssetDeleteInstructions, createAssetAgentService, } from './mindspace-asset-agent.mjs'; test('buildSelectedAssetDeleteInstructions includes agent delete curl', () => { const lines = buildSelectedAssetDeleteInstructions({ selectedAssets: [ { id: 'asset-9', displayName: 'sales.xlsx', mimeType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', }, ], h5ApiBase: 'http://127.0.0.1:8081', agentSessionId: 'session-1', }); const text = lines.join('\n'); assert.match(text, /完整读写删改权限/); assert.match(text, /mindspace_asset_delete/); assert.match(text, /asset-9/); assert.match(text, /session-1/); assert.match(text, /不要让用户自己去界面点删除/); }); test('applyAgentDelete requires confirmation and valid session', async () => { const service = createAssetAgentService({ assetService: { deleteAsset: async () => ({ deleted: true }), }, resolveUserIdForAgentSession: async (sessionId) => sessionId === 'session-1' ? 'user-1' : null, }); await assert.rejects( () => service.applyAgentDelete({ session_id: 'session-1', asset_id: 'asset-9' }), (error) => error.code === 'confirmation_required', ); const result = await service.applyAgentDelete({ session_id: 'session-1', asset_id: 'asset-9', confirmed: true, }); assert.equal(result.deleted, true); assert.equal(result.userId, 'user-1'); });