legacy-admin-coverage.generated.spec.ts 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. import { LEGACY_ADMIN_COVERAGE } from './legacy-admin-coverage.generated';
  2. describe('legacy admin coverage inventory', () => {
  3. it('tracks every decompiled controller action exactly once', () => {
  4. expect(LEGACY_ADMIN_COVERAGE.length).toBe(1042);
  5. const keys = LEGACY_ADMIN_COVERAGE.map((entry) => `${entry.module}/${entry.action}#${entry.occurrence}`);
  6. expect(new Set(keys).size).toBe(1042);
  7. });
  8. it('keeps verified mappings and blockers explicit', () => {
  9. const byKey = new Map(LEGACY_ADMIN_COVERAGE.map((entry) => [`${entry.module}/${entry.action}`, entry]));
  10. expect(byKey.get('Content/ContentManage_Status')?.status).toBe('implemented');
  11. expect(byKey.get('Content / Node/NodeAdd_Submit')?.status).toBe('implemented');
  12. expect(byKey.get('Content / Node/Node_API')?.status).toBe('partial');
  13. expect(byKey.get('Content / Node/SpecialAdd_Save')?.status).toBe('implemented');
  14. expect(byKey.get('Content / Node/UnionSpecial_Merge')?.status).toBe('blocked-data');
  15. expect(byKey.get('Model/ModelManage')?.status).toBe('implemented');
  16. expect(byKey.get('Model/ModelAdd_Submit')?.status).toBe('blocked-infrastructure');
  17. expect(byKey.get('Content / Guest/Msg_API')?.status).toBe('implemented');
  18. expect(byKey.get('Content / Guest/CateAdd_Submit')?.status).toBe('implemented');
  19. expect(byKey.get('Content / Bar/Cate_API')?.status).toBe('partial');
  20. expect(byKey.get('Content / Bar/BarAuthSet')?.status).toBe('blocked-data');
  21. expect(byKey.get('Content / Bar/BarAuthSet_Submit')?.status).toBe('blocked-data');
  22. expect(byKey.get('Content / Bar/TieMove')?.status).toBe('implemented');
  23. expect(byKey.get('Exam/Question_Class_Manage')?.status).toBe('partial');
  24. expect(byKey.get('Exam/Question_Class_Add')?.status).toBe('implemented');
  25. expect(byKey.get('Exam/ExamPointManage')?.status).toBe('implemented');
  26. expect(byKey.get('Exam/ExamPoint_Add')?.status).toBe('implemented');
  27. expect(byKey.get('Exam/KnowledgeManage')?.status).toBe('partial');
  28. expect(byKey.get('Exam/Knowledge_Add')?.status).toBe('implemented');
  29. expect(byKey.get('Exam/ExTeacherManage')?.status).toBe('implemented');
  30. expect(byKey.get('Dict/DicCateList')?.status).toBe('implemented');
  31. expect(byKey.get('Dict/DictCate_API')?.status).toBe('implemented');
  32. expect(byKey.get('Dict/DicCateSel')?.status).toBe('implemented');
  33. expect(byKey.get('Dict/DicItemList')?.status).toBe('implemented');
  34. expect(byKey.get('Dict/DicItem_API')?.status).toBe('implemented');
  35. expect(byKey.get('Dict/GradeCateManage')?.status).toBe('implemented');
  36. expect(byKey.get('Dict/GCateAdd_Submit')?.status).toBe('implemented');
  37. expect(byKey.get('Dict/GradeOption')?.status).toBe('implemented');
  38. expect(byKey.get('Dict/GOptionAdd_Submit')?.status).toBe('implemented');
  39. expect(byKey.get('Shop / Exp/Currency')?.status).toBe('implemented');
  40. expect(byKey.get('Shop / Exp/CurrencyAdd_Submit')?.status).toBe('blocked-infrastructure');
  41. expect(byKey.get('Shop / Exp/Currency_API')?.status).toBe('implemented');
  42. expect(byKey.get('Config/Holiday')?.status).toBe('implemented');
  43. expect(byKey.get('Config/Holiday_API')?.status).toBe('implemented');
  44. expect(byKey.get('Config/HolidayAdd')?.status).toBe('blocked-infrastructure');
  45. expect(byKey.get('Config/HolidayAdd_Submit')?.status).toBe('blocked-infrastructure');
  46. expect(byKey.get('Config/SearchFunc')?.status).toBe('implemented');
  47. expect(byKey.get('Config/SearchFunc_API')?.status).toBe('partial');
  48. expect(byKey.get('Config/SearchFuncAdd')?.status).toBe('partial');
  49. expect(byKey.get('Config/SearchFuncAdd_Submit')?.status).toBe('partial');
  50. expect(byKey.get('Config/APIInfo')?.status).toBe('partial');
  51. expect(byKey.get('Config/APIInfo_Submit')?.status).toBe('blocked-infrastructure');
  52. expect(byKey.get('Config/ReadFile')?.status).toBe('implemented');
  53. expect(byKey.get('Config/LicenceFile_API')?.status).toBe('blocked-data');
  54. expect(byKey.get('User / PrivacyPolicy/LicenceUserSign')?.status).toBe('blocked-data');
  55. expect(byKey.get('User / Promo/PromoList')?.status).toBe('implemented');
  56. expect(byKey.get('User / Promo/WDAudit_Reject')?.status).toBe('blocked-data');
  57. expect(byKey.get('Pub/PubManage')?.status).toBe('blocked-data');
  58. expect(byKey.get('Pub/PubAdd_Submit')?.status).toBe('blocked-infrastructure');
  59. expect(byKey.get('Push/APIList')?.status).toBe('blocked-data');
  60. expect(byKey.get('Push/PushMsg_Submit')?.status).toBe('blocked-infrastructure');
  61. expect(byKey.get('Extend / PWA/Offline_Submit')?.status).toBe('blocked-infrastructure');
  62. expect(byKey.get('Extend / QuartzTask/TaskAdd')?.status).toBe('blocked-infrastructure');
  63. expect(byKey.get('Extend / QuartzTask/ViewLog')?.status).toBe('blocked-data');
  64. expect(byKey.get('Config/FontIcon')?.status).toBe('implemented');
  65. expect(byKey.get('Config/Hotkey_API')?.status).toBe('blocked-infrastructure');
  66. expect(byKey.get('Config/Prize_Submit')?.status).toBe('blocked-infrastructure');
  67. expect(byKey.get('Extend / AD/ZoneManage')?.status).toBe('implemented');
  68. expect(byKey.get('Extend / AD/ZoneAdd')?.status).toBe('partial');
  69. expect(byKey.get('Extend / AD/Info_API')?.status).toBe('implemented');
  70. expect(byKey.get('Extend / AD/InfoAdd_Submit')?.status).toBe('partial');
  71. expect(byKey.get('Extend / AD/ADPreView')?.status).toBe('partial');
  72. expect(byKey.get('FontPic/Index')?.status).toBe('blocked-data');
  73. expect(byKey.get('FontPic/Shape')?.status).toBe('implemented');
  74. expect(byKey.get('FontPic/ShapeInfo_Submit')?.status).toBe('partial');
  75. expect(byKey.get('FontPic/ShapeType_API')?.status).toBe('implemented');
  76. expect(byKey.get('FontPic/Draft_API')?.status).toBe('blocked-data');
  77. expect(byKey.get('Extend / Survey/SurveyManage')?.status).toBe('implemented');
  78. expect(byKey.get('Extend / Survey/SurveyAdd_Submit')?.status).toBe('partial');
  79. expect(byKey.get('Extend / Survey/SurveyItem_API')?.status).toBe('implemented');
  80. expect(byKey.get('Extend / Survey/SurveyResultChart')?.status).toBe('implemented');
  81. expect(byKey.get('Office / Service/Seat')?.status).toBe('implemented');
  82. expect(byKey.get('Office / Service/SeatAdd_Submit')?.status).toBe('partial');
  83. expect(byKey.get('Office / Service/CodeList')?.status).toBe('implemented');
  84. expect(byKey.get('Office / Service/MsgEx')?.status).toBe('blocked-data');
  85. expect(byKey.get('Shop / Store/StoreManage')?.status).toBe('implemented');
  86. expect(byKey.get('Shop / Store/Store_API')?.status).toBe('partial');
  87. expect(byKey.get('Shop / Store/StoreUpdate_Submit')?.status).toBe('partial');
  88. expect(byKey.get('Shop / Store/Product')?.status).toBe('blocked-data');
  89. expect(byKey.get('Content / Addon/TagKey')?.status).toBe('implemented');
  90. expect(byKey.get('Content / Addon/TagKey_Submit')?.status).toBe('implemented');
  91. expect(byKey.get('Content / Addon/Comment')?.status).toBe('blocked-data');
  92. expect(byKey.get('Content / Addon/ConAudit')?.status).toBe('blocked-data');
  93. expect(byKey.get('Content / Addon/VerBak')?.status).toBe('blocked-data');
  94. expect(byKey.get('Shop / Addon/Vendor')?.status).toBe('blocked-data');
  95. expect(byKey.get('Shop / Addon/Vendor_API')?.status).toBe('blocked-data');
  96. expect(byKey.get('Shop / Addon/VendorAdd_Submit')?.status).toBe('blocked-data');
  97. expect(byKey.get('User / Addon/PointGroup')?.status).toBe('implemented');
  98. expect(byKey.get('User / Addon/PointGroupAdd')?.status).toBe('partial');
  99. expect(byKey.get('User / Addon/PointGroup_API')?.status).toBe('implemented');
  100. expect(byKey.get('User / Addon/VMoneyLog')?.status).toBe('implemented');
  101. expect(byKey.get('User / Addon/ThirdInfo')?.status).toBe('blocked-data');
  102. expect(byKey.get('User / Addon/ThirdInfo_Submit')?.status).toBe('blocked-infrastructure');
  103. expect(byKey.get('User / Addon/SigninList')?.status).toBe('blocked-data');
  104. expect(byKey.get('User / Addon/RealNameAuth_API')?.status).toBe('blocked-data');
  105. expect(byKey.get('Content / Ask/Default')?.status).toBe('blocked-data');
  106. expect(byKey.get('Content / Ask/Ask_API')?.status).toBe('blocked-data');
  107. expect(byKey.get('Content / Ask/AnswerList')?.status).toBe('blocked-data');
  108. expect(byKey.get('Content / Ask/Answer_API')?.status).toBe('blocked-data');
  109. expect(byKey.get('Content / Ask/Config')?.status).toBe('blocked-infrastructure');
  110. expect(byKey.get('Content / Ask/Config_Submit')?.status).toBe('blocked-infrastructure');
  111. expect(byKey.get('BiaoCalc/Default')?.status).toBe('blocked-data');
  112. expect(byKey.get('BiaoCalc/BiaoDetail')?.status).toBe('blocked-data');
  113. expect(byKey.get('BiaoCalc/Biao_API')?.status).toBe('blocked-data');
  114. expect(byKey.get('BiaoCalc/UserFiles')?.status).toBe('blocked-data');
  115. expect(byKey.get('BiaoCalc/UserFiles_API')?.status).toBe('blocked-data');
  116. expect(byKey.get('Office / Chart/Index')?.status).toBe('blocked-infrastructure');
  117. expect(byKey.get('Extend / Chat/Default')?.status).toBe('blocked-data');
  118. expect(byKey.get('Extend / Chat/UserFriend')?.status).toBe('blocked-data');
  119. expect(byKey.get('Extend / Chat/GroupAdd_Submit')?.status).toBe('blocked-data');
  120. expect(byKey.get('Extend / Chat/MessageHistory')?.status).toBe('blocked-data');
  121. expect(byKey.get('Extend / Chat/Config')?.status).toBe('blocked-infrastructure');
  122. expect(byKey.get('Extend / Chat/Config_Submit')?.status).toBe('blocked-infrastructure');
  123. expect(byKey.get('Extend / Chat/Chat_API')?.status).toBe('blocked-data');
  124. expect(byKey.get('Design / Class/ClassList')?.status).toBe('blocked-data');
  125. expect(byKey.get('Design / Class/ClassAdd_Submit')?.status).toBe('blocked-data');
  126. expect(byKey.get('Design / Class/Class_API')?.status).toBe('blocked-data');
  127. expect(byKey.get('Com/Logout')?.status).toBe('implemented');
  128. expect(byKey.get('Com/SPwdCheck')?.status).toBe('blocked-infrastructure');
  129. expect(byKey.get('Com/BootLayout')?.status).toBe('implemented');
  130. expect(byKey.get('Com/Import_Submit')?.status).toBe('blocked-infrastructure');
  131. expect(byKey.get('Com/ImportForContent_Submit')?.status).toBe('blocked-infrastructure');
  132. expect(byKey.get('Com/Sort')?.status).toBe('partial');
  133. expect(byKey.get('Com/Sort_API')?.status).toBe('partial');
  134. expect(byKey.get('Common/UserBaseField')?.status).toBe('blocked-data');
  135. expect(byKey.get('Common/ContentField')?.status).toBe('blocked-data');
  136. expect(byKey.get('Common/SelUploadFiles')?.status).toBe('blocked-infrastructure');
  137. expect(byKey.get('Config/Index')?.status).toBe('blocked-infrastructure');
  138. expect(byKey.get('Config/SiteInfo_Submit')?.status).toBe('blocked-infrastructure');
  139. expect(byKey.get('Config/MailConfig_Submit')?.status).toBe('blocked-infrastructure');
  140. expect(byKey.get('Config/UserConfig_Submit')?.status).toBe('blocked-infrastructure');
  141. expect(byKey.get('Config/SetOrderStatus_Submit')?.status).toBe('blocked-infrastructure');
  142. expect(byKey.get('Config/SMSConfig_Submit')?.status).toBe('blocked-infrastructure');
  143. expect(byKey.get('Config/ThumbConfig_Submit')?.status).toBe('blocked-infrastructure');
  144. expect(byKey.get('Config/APPConfig_ReInstall')?.status).toBe('blocked-infrastructure');
  145. expect(byKey.get('Content / Baike/Default')?.status).toBe('partial');
  146. expect(byKey.get('Content / Baike/BKVersionList')?.status).toBe('blocked-data');
  147. expect(byKey.get('Content / Baike/Version_API')?.status).toBe('blocked-data');
  148. expect(byKey.get('Content / Baike/BK_API')?.status).toBe('partial');
  149. expect(byKey.get('Content / Baike/Config')?.status).toBe('blocked-infrastructure');
  150. expect(byKey.get('Content / Baike/BkCheck')?.status).toBe('implemented');
  151. expect(byKey.get('Exam/Teacher_Add')?.status).toBe('implemented');
  152. expect(byKey.get('User/User_API')?.status).toBe('partial');
  153. expect(byKey.get('Order/OrderList')?.status).toBe('blocked-data');
  154. expect(byKey.get('Label / PowerShell/RunScript')?.status).toBe('blocked-infrastructure');
  155. expect(byKey.get('Exam/Papers_System_Manage')?.status).toBe('partial');
  156. expect(byKey.get('User/UserExp_Submit')?.status).toBe('implemented');
  157. expect(byKey.get('User/UserOrder')?.status).toBe('blocked-data');
  158. expect(byKey.get('User/WSApi_Submit')?.status).toBe('blocked-infrastructure');
  159. expect(byKey.get('Content / VBook/List')?.status).toBe('blocked-data');
  160. expect(byKey.get('Vdesign/Site_API')?.status).toBe('blocked-data');
  161. expect(byKey.get('Extend / VDesign/SPageDesign')?.status).toBe('blocked-infrastructure');
  162. expect(byKey.get('WritePearl/UserFiles_API')?.status).toBe('blocked-data');
  163. expect(LEGACY_ADMIN_COVERAGE.some((entry) => entry.status === 'pending')).toBeFalse();
  164. });
  165. });