Files

50 lines
1.5 KiB
JavaScript
Raw Permalink Normal View History

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');
});