25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 
 
 
 
 

79 satır
2.9 KiB

  1. context('Form', () => {
  2. before(() => {
  3. cy.login();
  4. cy.visit('/app/website');
  5. return cy.window().its('frappe').then(frappe => {
  6. return frappe.call("frappe.tests.ui_test_helpers.create_contact_records");
  7. });
  8. });
  9. it('create a new form', () => {
  10. cy.visit('/app/todo/new');
  11. cy.get('[data-fieldname="description"] .ql-editor')
  12. .first()
  13. .click()
  14. .type('this is a test todo');
  15. cy.wait(300);
  16. cy.get('.page-title').should('contain', 'Not Saved');
  17. cy.intercept({
  18. method: 'POST',
  19. url: 'api/method/frappe.desk.form.save.savedocs'
  20. }).as('form_save');
  21. cy.get('.primary-action').click();
  22. cy.wait('@form_save').its('response.statusCode').should('eq', 200);
  23. cy.visit('/app/todo');
  24. cy.wait(300);
  25. cy.get('.title-text').should('be.visible').and('contain', 'To Do');
  26. cy.get('.list-row').should('contain', 'this is a test todo');
  27. });
  28. it('navigates between documents with child table list filters applied', () => {
  29. cy.visit('/app/contact');
  30. cy.add_filter();
  31. cy.get('.filter-field .input-with-feedback.form-control').type('123', { force: true });
  32. cy.findByRole('button', {name: 'Apply Filters'}).click({ force: true });
  33. cy.visit('/app/contact/Test Form Contact 3');
  34. cy.get('.prev-doc').should('be.visible').click();
  35. cy.get('.msgprint-dialog .modal-body').contains('No further records').should('be.visible');
  36. cy.hide_dialog();
  37. cy.get('.next-doc').click();
  38. cy.wait(200);
  39. cy.hide_dialog();
  40. cy.contains('Test Form Contact 2').should('not.exist');
  41. cy.get('.title-text').should('contain', 'Test Form Contact 3');
  42. // clear filters
  43. cy.visit('/app/contact');
  44. cy.clear_filters();
  45. });
  46. it('validates behaviour of Data options validations in child table', () => {
  47. // test email validations for set_invalid controller
  48. let website_input = 'website.in';
  49. let valid_email = 'user@email.com';
  50. let expectBackgroundColor = 'rgb(255, 245, 245)';
  51. cy.visit('/app/contact/new');
  52. cy.get('.frappe-control[data-fieldname="email_ids"]').as('table');
  53. cy.get('@table').find('button.grid-add-row').click();
  54. cy.get('@table').find('button.grid-add-row').click();
  55. cy.get('@table').find('[data-idx="1"]').as('row1');
  56. cy.get('@table').find('[data-idx="2"]').as('row2');
  57. cy.get('@row1').click();
  58. cy.get('@row1').find('input.input-with-feedback.form-control').as('email_input1');
  59. cy.get('@email_input1').type(website_input, { waitForAnimations: false });
  60. cy.fill_field('company_name', 'Test Company');
  61. cy.get('@row2').click();
  62. cy.get('@row2').find('input.input-with-feedback.form-control').as('email_input2');
  63. cy.get('@email_input2').type(valid_email, { waitForAnimations: false });
  64. cy.get('@row1').click();
  65. cy.get('@email_input1').should($div => {
  66. const style = window.getComputedStyle($div[0]);
  67. expect(style.backgroundColor).to.equal(expectBackgroundColor);
  68. });
  69. cy.get('@email_input1').should('have.class', 'invalid');
  70. cy.get('@row2').click();
  71. cy.get('@email_input2').should('not.have.class', 'invalid');
  72. });
  73. });