menu.cy.ts 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. import {
  2. intercept,
  3. loginIntercept,
  4. loginSetup,
  5. menuIntercept,
  6. menuTrigger,
  7. successIntercept,
  8. tableBtnClick,
  9. validateDelete,
  10. validatePut,
  11. validateTableList,
  12. validateTableSearch,
  13. } from './utils';
  14. describe('菜单管理', function() {
  15. beforeEach(function() {
  16. loginIntercept();
  17. menuIntercept();
  18. loginSetup();
  19. menuTrigger(3, 0);
  20. });
  21. beforeEach(function() {
  22. intercept('/menu/getPage', function({reply, url: reqUrl}) {
  23. const url = new URL(reqUrl);
  24. const search = new URLSearchParams(url.search);
  25. if (search.get('pId') !== '0') {
  26. if (search.has('name') && search.get('name').length)
  27. return reply({fixture: 'menu/childSearchList'});
  28. const page = search.get('page');
  29. return reply({fixture: `menu/childList${page}`});
  30. }
  31. if (search.has('name') && search.get('name').length)
  32. return reply({fixture: 'menu/searchList'});
  33. const page = search.get('page');
  34. return reply({fixture: `menu/list${page}`});
  35. });
  36. successIntercept('/menu/addMenu');
  37. successIntercept('/menu/updateMenu');
  38. successIntercept('/menu/delMenu');
  39. });
  40. const TABLE_NAME = 'menu_table',
  41. MODAL_NAME = 'menu_modal',
  42. LABEL = '菜单';
  43. it('表格', function() {
  44. validateTableList(TABLE_NAME);
  45. });
  46. it('搜索', function() {
  47. const validate = validateTableSearch(TABLE_NAME, '菜单搜索');
  48. cy.get('#filter_menuName').type('name');
  49. validate();
  50. });
  51. it('删除', function() {
  52. validateDelete(TABLE_NAME, LABEL);
  53. });
  54. const {validateAdd, validateEdit} = validatePut(MODAL_NAME, LABEL);
  55. it('新增', function() {
  56. validateAdd(function() {
  57. cy.getTestId('field_menuName').type('菜单名称');
  58. cy.getTestId('field_menuUrl').type('/test');
  59. cy.getTestId('field_menuOrderBy').clear().type('8');
  60. });
  61. });
  62. it('修改', function() {
  63. validateEdit(TABLE_NAME, function() {
  64. cy.getTestId('field_menuName').should('have.value', '用户设置');
  65. cy.getTestId('field_menuUrl').should('have.value', '.');
  66. cy.getTestId('field_menuOrderBy').should('have.value', '1');
  67. });
  68. });
  69. const CHILD_TALBE_NAME = 'child_menu_table',
  70. CHILD_MODAL_NAME = 'child_menu_modal',
  71. CHILD_LABEL = '菜单';
  72. it('子菜单展示', function() {
  73. tableBtnClick(TABLE_NAME, 2);
  74. cy.getTestId('child_menu').should('exist').and('be.visible');
  75. validateTableList(CHILD_TALBE_NAME);
  76. });
  77. it('子菜单关闭', function() {
  78. tableBtnClick(TABLE_NAME, 2);
  79. cy.getTestId('child_menu').should('exist').and('be.visible');
  80. cy.getTestId('child_menu_back').click();
  81. cy.getTestId('child_menu').should('not.exist');
  82. });
  83. it('子菜单查询', function() {
  84. tableBtnClick(TABLE_NAME, 2);
  85. const validate = validateTableSearch(
  86. CHILD_TALBE_NAME,
  87. 'childMenuSearch',
  88. {btnTestId: 'child_menu_search_btn'},
  89. );
  90. cy.get('#filter_childMenuName').type('子菜单名称');
  91. validate();
  92. });
  93. it('子菜单删除', function() {
  94. tableBtnClick(TABLE_NAME, 2);
  95. validateDelete(CHILD_TALBE_NAME, CHILD_LABEL);
  96. });
  97. const {
  98. validateAdd: childValidateAdd,
  99. validateEdit: childValidateEdit,
  100. } = validatePut(
  101. CHILD_MODAL_NAME,
  102. CHILD_LABEL,
  103. {addBtnTestId: 'child_menu_add_btn'},
  104. );
  105. it('子菜单新增', function() {
  106. tableBtnClick(TABLE_NAME, 2);
  107. childValidateAdd(function() {
  108. cy.getTestId('field_menuName').type('菜单名称');
  109. cy.getTestId('field_menuUrl').type('/test');
  110. cy.getTestId('field_menuOrderBy').clear().type('8');
  111. });
  112. });
  113. it('子菜单修改', function() {
  114. tableBtnClick(TABLE_NAME, 2);
  115. childValidateEdit(CHILD_TALBE_NAME, function() {
  116. cy.getTestId('field_menuName').should('have.value', '用户管理');
  117. cy.getTestId('field_menuUrl').should('have.value', '/user');
  118. cy.getTestId('field_menuOrderBy').should('have.value', '0');
  119. });
  120. });
  121. });