Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 
 
 

107 строки
4.8 KiB

  1. import doctype_with_child_table from '../fixtures/doctype_with_child_table';
  2. import child_table_doctype from '../fixtures/child_table_doctype';
  3. import child_table_doctype_1 from '../fixtures/child_table_doctype_1';
  4. const doctype_with_child_table_name = doctype_with_child_table.name;
  5. context('Grid Search', () => {
  6. before(() => {
  7. cy.visit('/login');
  8. cy.login();
  9. cy.visit('/app/website');
  10. cy.insert_doc('DocType', child_table_doctype, true);
  11. cy.insert_doc('DocType', child_table_doctype_1, true);
  12. cy.insert_doc('DocType', doctype_with_child_table, true);
  13. return cy.window().its('frappe').then(frappe => {
  14. return frappe.xcall("frappe.tests.ui_test_helpers.insert_doctype_with_child_table_record", {
  15. name: doctype_with_child_table_name
  16. });
  17. });
  18. });
  19. it('Test search row visibility', () => {
  20. cy.window().its('frappe').then(frappe => {
  21. frappe.model.user_settings.save('Doctype With Child Table', 'GridView', {
  22. 'Child Table Doctype 1': [
  23. {'fieldname': 'data', 'columns': 2},
  24. {'fieldname': 'barcode', 'columns': 1},
  25. {'fieldname': 'check', 'columns': 1},
  26. {'fieldname': 'rating', 'columns': 2},
  27. {'fieldname': 'duration', 'columns': 2},
  28. {'fieldname': 'date', 'columns': 2}
  29. ]
  30. });
  31. });
  32. cy.visit(`/app/doctype-with-child-table/Test Grid Search`);
  33. cy.get('.frappe-control[data-fieldname="child_table_1"]').as('table');
  34. cy.get('@table').find('.grid-row-check:last').click();
  35. cy.get('@table').find('.grid-footer').contains('Delete').click();
  36. cy.get('.grid-heading-row .grid-row .search').should('not.exist');
  37. });
  38. it('test search field for different fieldtypes', () => {
  39. cy.visit(`/app/doctype-with-child-table/Test Grid Search`);
  40. cy.get('.frappe-control[data-fieldname="child_table_1"]').as('table');
  41. // Index Column
  42. cy.get('@table').find('.grid-heading-row .row-index.search input').type('3');
  43. cy.get('@table').find('.grid-body .rows .grid-row').should('have.length', 2);
  44. cy.get('@table').find('.grid-heading-row .row-index.search input').clear();
  45. // Data Column
  46. cy.get('@table').find('.grid-heading-row .search input[data-fieldtype="Data"]').type('Data');
  47. cy.get('@table').find('.grid-body .rows .grid-row').should('have.length', 1);
  48. cy.get('@table').find('.grid-heading-row .search input[data-fieldtype="Data"]').clear();
  49. // Barcode Column
  50. cy.get('@table').find('.grid-heading-row .search input[data-fieldtype="Barcode"]').type('092');
  51. cy.get('@table').find('.grid-body .rows .grid-row').should('have.length', 4);
  52. cy.get('@table').find('.grid-heading-row .search input[data-fieldtype="Barcode"]').clear();
  53. // Check Column
  54. cy.get('@table').find('.grid-heading-row .search input[data-fieldtype="Check"]').type('1');
  55. cy.get('@table').find('.grid-body .rows .grid-row').should('have.length', 9);
  56. cy.get('@table').find('.grid-heading-row .search input[data-fieldtype="Check"]').clear();
  57. cy.get('@table').find('.grid-heading-row .search input[data-fieldtype="Check"]').type('0');
  58. cy.get('@table').find('.grid-body .rows .grid-row').should('have.length', 11);
  59. cy.get('@table').find('.grid-heading-row .search input[data-fieldtype="Check"]').clear();
  60. // Rating Column
  61. cy.get('@table').find('.grid-heading-row .search input[data-fieldtype="Rating"]').type('3');
  62. cy.get('@table').find('.grid-body .rows .grid-row').should('have.length', 3);
  63. cy.get('@table').find('.grid-heading-row .search input[data-fieldtype="Rating"]').clear();
  64. // Duration Column
  65. cy.get('@table').find('.grid-heading-row .search input[data-fieldtype="Duration"]').type('3d');
  66. cy.get('@table').find('.grid-body .rows .grid-row').should('have.length', 3);
  67. cy.get('@table').find('.grid-heading-row .search input[data-fieldtype="Duration"]').clear();
  68. // Date Column
  69. cy.get('@table').find('.grid-heading-row .search input[data-fieldtype="Date"]').type('2022');
  70. cy.get('@table').find('.grid-body .rows .grid-row').should('have.length', 4);
  71. cy.get('@table').find('.grid-heading-row .search input[data-fieldtype="Date"]').clear();
  72. });
  73. it('test with multiple filter', () => {
  74. cy.get('.frappe-control[data-fieldname="child_table_1"]').as('table');
  75. // Data Column
  76. cy.get('@table').find('.grid-heading-row .search input[data-fieldtype="Data"]').type('a');
  77. cy.get('@table').find('.grid-body .rows .grid-row').should('have.length', 10);
  78. // Barcode Column
  79. cy.get('@table').find('.grid-heading-row .search input[data-fieldtype="Barcode"]').type('0');
  80. cy.get('@table').find('.grid-body .rows .grid-row').should('have.length', 8);
  81. // Duration Column
  82. cy.get('@table').find('.grid-heading-row .search input[data-fieldtype="Duration"]').type('d');
  83. cy.get('@table').find('.grid-body .rows .grid-row').should('have.length', 5);
  84. // Date Column
  85. cy.get('@table').find('.grid-heading-row .search input[data-fieldtype="Date"]').type('02-');
  86. cy.get('@table').find('.grid-body .rows .grid-row').should('have.length', 2);
  87. });
  88. });