questionnaireReportMerge.spec.js 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. const fs = require('fs')
  2. const path = require('path')
  3. const source = fs.readFileSync(
  4. path.resolve(__dirname, '../../src/views/modules/agent/questionnaireList.vue'),
  5. 'utf8'
  6. )
  7. test('homepage report shortcut points to the questionnaire management entry', () => {
  8. const homeSource = fs.readFileSync(
  9. path.resolve(__dirname, '../../src/views/modules/home.vue'),
  10. 'utf8'
  11. )
  12. expect(homeSource).toContain("toTurn('agent-questionnaire')")
  13. expect(homeSource).not.toContain("toTurn('agent-report')")
  14. })
  15. test('questionnaire management exposes an inline report list action', () => {
  16. expect(source).toContain('报告列表')
  17. expect(source).toContain('getTeamQuestionnaireList')
  18. expect(source).toContain('getTeamReportWjList')
  19. expect(source).toContain('reportList')
  20. expect(source).toContain('reportExpanded')
  21. })
  22. test('questionnaire survey page exposes reports from each questionnaire row', () => {
  23. const questionnaireSource = fs.readFileSync(
  24. path.resolve(__dirname, '../../src/views/modules/agent/questionnaire.vue'),
  25. 'utf8'
  26. )
  27. expect(questionnaireSource).toContain('报告列表')
  28. expect(questionnaireSource).toContain('@click="handleReportList(item)"')
  29. expect(questionnaireSource).toContain("path: '/agentQuestionnaireReports'")
  30. expect(questionnaireSource).not.toContain('reportExpanded')
  31. })
  32. test('questionnaire report page lists report types like mini-program report records', () => {
  33. const reportPageSource = fs.readFileSync(
  34. path.resolve(__dirname, '../../src/views/modules/agent/questionnaire/reports.vue'),
  35. 'utf8'
  36. )
  37. expect(reportPageSource).toContain('getQuestionnaireReportList')
  38. expect(reportPageSource).toContain('报告类型')
  39. expect(reportPageSource).toContain('个人报告')
  40. expect(reportPageSource).toContain('背景报告')
  41. expect(reportPageSource).toContain('教练报告')
  42. expect(reportPageSource).toContain('团队报告')
  43. expect(reportPageSource).toContain('reportArtifactUrl')
  44. })
  45. test('questionnaire management wires inline report mutation events to report APIs', () => {
  46. expect(source).toContain('@deleteReport="e=>deleteReportEntry(e,index)"')
  47. expect(source).toContain('@sendReport="e=>sendReportEntry(e,index,item)"')
  48. expect(source).toContain('@reCreateReport="e=>reCreateReportEntry(e,index)"')
  49. expect(source).toContain('deleteTeamReportWj')
  50. expect(source).toContain('sendReportUsers')
  51. expect(source).toContain('reCreateReport')
  52. })
  53. test('questionnaire refresh clears inline report expansion state', () => {
  54. expect(source).toMatch(/const getList[\s\S]*?expandedReportRows\.value = \[\][\s\S]*?currentReportRow\.value = null[\s\S]*?dataList\.value = res\.data\.list\.map\(prepareQuestionnaireRow\)/)
  55. })
  56. test('expanded questionnaire reports retain report operations and current generation endpoint', () => {
  57. const apiSource = fs.readFileSync(
  58. path.resolve(__dirname, '../../src/api/agent/index.js'),
  59. 'utf8'
  60. )
  61. expect(source).toContain('@toggleReport="e=>toggleReportEntry(e,index)"')
  62. expect(source).toContain('@reCreateReport')
  63. expect(source).toContain('@refreshReportList')
  64. expect(apiSource).toContain('/core/team/questionnaire/genReport/${teamQuestionnaireId}')
  65. })