knowledge-library-ui-smoke-test.js 1.9 KB

1234567891011121314151617181920212223242526272829303132
  1. 'use strict';
  2. const assert = require('assert/strict');
  3. const fs = require('fs');
  4. const path = require('path');
  5. const root = path.resolve(__dirname, '..');
  6. const app = fs.readFileSync(path.join(root, 'mcp/src/dashboard/app.js'), 'utf8');
  7. const server = fs.readFileSync(path.join(root, 'mcp/src/dashboard/server.js'), 'utf8');
  8. const service = fs.readFileSync(path.join(root, 'mcp/src/dashboard/workspace-library-service.js'), 'utf8');
  9. const packageBuilder = fs.readFileSync(path.join(root, 'scripts/build-training-package.mjs'), 'utf8');
  10. const css = fs.readFileSync(path.join(root, 'mcp/src/dashboard/styles.css'), 'utf8');
  11. const checks = [
  12. ['可写知识库根目录', /USER_LIBRARY_ID\s*=\s*'user-knowledge'/],
  13. ['中文分类和文件名校验', /assertSafeName\(/],
  14. ['系统知识库中文显示映射', /KNOWLEDGE_DISPLAY_NAMES[\s\S]*customer-service[\s\S]*客服知识[\s\S]*常见问题\.md/],
  15. ['目录注册文件随交付包复制', /knowledge-base[\\/].*catalog\.json|copyTree\(path\.join\(ROOT, 'knowledge-base'/],
  16. ['文件树刷新接口', /\/api\/knowledge\/tree/],
  17. ['新增分类入口', /data-knowledge-action="add-root-folder"/],
  18. ['上传文件入口', /data-knowledge-action="upload-file"/],
  19. ['二进制文件下载', /\/api\/knowledge\/download/],
  20. ['编辑和移动入口', /data-knowledge-action="edit-file"[\s\S]*data-knowledge-action="move-node"/],
  21. ['删除入口', /data-knowledge-action="delete-node"/],
  22. ['后端管理路由', /\/api\/knowledge\/manage\/folder[\s\S]*\/api\/knowledge\/manage\/file[\s\S]*\/api\/knowledge\/manage\/node/],
  23. ['递归删除实现', /function removeNodeTree/],
  24. ['移动分类实现', /function moveKnowledgeNode/],
  25. ['移动端知识库工具栏', /\.knowledge-toolbar/],
  26. ];
  27. for (const [label, pattern] of checks) assert.match(`${app}\n${server}\n${service}\n${css}\n${packageBuilder}`, pattern, label);
  28. console.log(JSON.stringify({ status: 'ok', checks: checks.map(([label]) => label) }, null, 2));