Browse Source

test: Make tests Cypress v6 compatible

version-14
Suraj Shetty 4 years ago
parent
commit
d18751db07
10 changed files with 27 additions and 36 deletions
  1. +4
    -7
      cypress/integration/control_link.js
  2. +4
    -7
      cypress/integration/file_uploader.js
  3. +2
    -3
      cypress/integration/form.js
  4. +4
    -3
      cypress/integration/list_view.js
  5. +1
    -1
      cypress/integration/login.js
  6. +2
    -4
      cypress/integration/recorder.js
  7. +4
    -6
      cypress/integration/relative_time_filters.js
  8. +1
    -2
      cypress/integration/report_view.js
  9. +2
    -3
      cypress/integration/table_multiselect.js
  10. +3
    -0
      cypress/support/commands.js

+ 4
- 7
cypress/integration/control_link.js View File

@@ -29,8 +29,7 @@ context('Control Link', () => {
it('should set the valid value', () => { it('should set the valid value', () => {
get_dialog_with_link().as('dialog'); get_dialog_with_link().as('dialog');


cy.server();
cy.route('POST', '/api/method/frappe.desk.search.search_link').as('search_link');
cy.intercept('POST', '/api/method/frappe.desk.search.search_link').as('search_link');


cy.get('.frappe-control[data-fieldname=link] input').focus().as('input'); cy.get('.frappe-control[data-fieldname=link] input').focus().as('input');
cy.wait('@search_link'); cy.wait('@search_link');
@@ -50,8 +49,7 @@ context('Control Link', () => {
it('should unset invalid value', () => { it('should unset invalid value', () => {
get_dialog_with_link().as('dialog'); get_dialog_with_link().as('dialog');


cy.server();
cy.route('GET', '/api/method/frappe.desk.form.utils.validate_link*').as('validate_link');
cy.intercept('GET', '/api/method/frappe.desk.form.utils.validate_link*').as('validate_link');


cy.get('.frappe-control[data-fieldname=link] input') cy.get('.frappe-control[data-fieldname=link] input')
.type('invalid value', { delay: 100 }) .type('invalid value', { delay: 100 })
@@ -63,9 +61,8 @@ context('Control Link', () => {
it('should route to form on arrow click', () => { it('should route to form on arrow click', () => {
get_dialog_with_link().as('dialog'); get_dialog_with_link().as('dialog');


cy.server();
cy.route('GET', '/api/method/frappe.desk.form.utils.validate_link*').as('validate_link');
cy.route('POST', '/api/method/frappe.desk.search.search_link').as('search_link');
cy.intercept('GET', '/api/method/frappe.desk.form.utils.validate_link*').as('validate_link');
cy.intercept('POST', '/api/method/frappe.desk.search.search_link').as('search_link');


cy.get('@todos').then(todos => { cy.get('@todos').then(todos => {
cy.get('.frappe-control[data-fieldname=link] input').as('input'); cy.get('.frappe-control[data-fieldname=link] input').as('input');


+ 4
- 7
cypress/integration/file_uploader.js View File

@@ -31,10 +31,9 @@ context('FileUploader', () => {
}); });


cy.get_open_dialog().find('.file-name').should('contain', 'example.json'); cy.get_open_dialog().find('.file-name').should('contain', 'example.json');
cy.server();
cy.route('POST', '/api/method/upload_file').as('upload_file');
cy.intercept('POST', '/api/method/upload_file').as('upload_file');
cy.get_open_dialog().find('.btn-modal-primary').click(); cy.get_open_dialog().find('.btn-modal-primary').click();
cy.wait('@upload_file').its('status').should('eq', 200);
cy.wait('@upload_file').its('response.statusCode').should('eq', 200);
cy.get('.modal:visible').should('not.exist'); cy.get('.modal:visible').should('not.exist');
}); });
}); });
@@ -45,8 +44,7 @@ context('FileUploader', () => {
cy.get_open_dialog().find('.btn-file-upload div:contains("Library")').click(); cy.get_open_dialog().find('.btn-file-upload div:contains("Library")').click();
cy.get('.file-filter').type('example.json'); cy.get('.file-filter').type('example.json');
cy.get_open_dialog().find('.tree-label:contains("example.json")').first().click(); cy.get_open_dialog().find('.tree-label:contains("example.json")').first().click();
cy.server();
cy.route('POST', '/api/method/upload_file').as('upload_file');
cy.intercept('POST', '/api/method/upload_file').as('upload_file');
cy.get_open_dialog().find('.btn-primary').click(); cy.get_open_dialog().find('.btn-primary').click();
cy.wait('@upload_file').its('response.body.message') cy.wait('@upload_file').its('response.body.message')
.should('have.property', 'file_url', '/private/files/example.json'); .should('have.property', 'file_url', '/private/files/example.json');
@@ -58,8 +56,7 @@ context('FileUploader', () => {


cy.get_open_dialog().find('.btn-file-upload div:contains("Link")').click(); cy.get_open_dialog().find('.btn-file-upload div:contains("Link")').click();
cy.get_open_dialog().find('.file-web-link input').type('https://github.com', { delay: 100, force: true }); cy.get_open_dialog().find('.file-web-link input').type('https://github.com', { delay: 100, force: true });
cy.server();
cy.route('POST', '/api/method/upload_file').as('upload_file');
cy.intercept('POST', '/api/method/upload_file').as('upload_file');
cy.get_open_dialog().find('.btn-primary').click(); cy.get_open_dialog().find('.btn-primary').click();
cy.wait('@upload_file').its('response.body.message') cy.wait('@upload_file').its('response.body.message')
.should('have.property', 'file_url', 'https://github.com'); .should('have.property', 'file_url', 'https://github.com');


+ 2
- 3
cypress/integration/form.js View File

@@ -11,13 +11,12 @@ context('Form', () => {
cy.fill_field('description', 'this is a test todo', 'Text Editor').blur(); cy.fill_field('description', 'this is a test todo', 'Text Editor').blur();
cy.wait(300); cy.wait(300);
cy.get('.page-title').should('contain', 'Not Saved'); cy.get('.page-title').should('contain', 'Not Saved');
cy.server();
cy.route({
cy.intercept({
method: 'POST', method: 'POST',
url: 'api/method/frappe.desk.form.save.savedocs' url: 'api/method/frappe.desk.form.save.savedocs'
}).as('form_save'); }).as('form_save');
cy.get('.primary-action').click(); cy.get('.primary-action').click();
cy.wait('@form_save').its('status').should('eq', 200);
cy.wait('@form_save').its('response.statusCode').should('eq', 200);
cy.visit('/app/todo'); cy.visit('/app/todo');
cy.get('.title-text').should('be.visible').and('contain', 'To Do'); cy.get('.title-text').should('be.visible').and('contain', 'To Do');
cy.get('.list-row').should('contain', 'this is a test todo'); cy.get('.list-row').should('contain', 'this is a test todo');


+ 4
- 3
cypress/integration/list_view.js View File

@@ -14,17 +14,18 @@ context('List View', () => {
cy.get('.dropdown-menu li:visible .dropdown-item').should('have.length', 8).each((el, index) => { cy.get('.dropdown-menu li:visible .dropdown-item').should('have.length', 8).each((el, index) => {
cy.wrap(el).contains(actions[index]); cy.wrap(el).contains(actions[index]);
}).then((elements) => { }).then((elements) => {
cy.server();
cy.route({
cy.intercept({
method: 'POST', method: 'POST',
url: 'api/method/frappe.model.workflow.bulk_workflow_approval' url: 'api/method/frappe.model.workflow.bulk_workflow_approval'
}).as('bulk-approval'); }).as('bulk-approval');
cy.route({
cy.intercept({
method: 'POST', method: 'POST',
url: 'api/method/frappe.desk.reportview.get' url: 'api/method/frappe.desk.reportview.get'
}).as('real-time-update'); }).as('real-time-update');
cy.wrap(elements).contains('Approve').click(); cy.wrap(elements).contains('Approve').click();
cy.wait(['@bulk-approval', '@real-time-update']); cy.wait(['@bulk-approval', '@real-time-update']);
cy.hide_dialog();
cy.clear_filters();
cy.get('.list-row-container:visible').should('contain', 'Approved'); cy.get('.list-row-container:visible').should('contain', 'Approved');
}); });
}); });


+ 1
- 1
cypress/integration/login.js View File

@@ -2,7 +2,7 @@ context('Login', () => {
beforeEach(() => { beforeEach(() => {
cy.request('/api/method/logout'); cy.request('/api/method/logout');
cy.visit('/login'); cy.visit('/login');
cy.location().should('be', '/login');
cy.location('pathname').should('eq', '/login');
}); });


it('greets with login screen', () => { it('greets with login screen', () => {


+ 2
- 4
cypress/integration/recorder.js View File

@@ -30,9 +30,8 @@ context('Recorder', () => {


cy.get('.msg-box').should('contain', 'No Requests'); cy.get('.msg-box').should('contain', 'No Requests');


cy.server();
cy.visit('/app/List/DocType/List'); cy.visit('/app/List/DocType/List');
cy.route('POST', '/api/method/frappe.desk.reportview.get').as('list_refresh');
cy.intercept('POST', '/api/method/frappe.desk.reportview.get').as('list_refresh');
cy.wait('@list_refresh'); cy.wait('@list_refresh');


cy.get('.title-text').should('contain', 'DocType'); cy.get('.title-text').should('contain', 'DocType');
@@ -53,9 +52,8 @@ context('Recorder', () => {
cy.get('#page-recorder .btn-secondary').should('contain', 'Clear').click(); cy.get('#page-recorder .btn-secondary').should('contain', 'Clear').click();
cy.get('.primary-action').should('contain', 'Start').click(); cy.get('.primary-action').should('contain', 'Start').click();


cy.server();
cy.visit('/app/List/DocType/List'); cy.visit('/app/List/DocType/List');
cy.route('POST', '/api/method/frappe.desk.reportview.get').as('list_refresh');
cy.intercept('POST', '/api/method/frappe.desk.reportview.get').as('list_refresh');
cy.wait('@list_refresh'); cy.wait('@list_refresh');


cy.get('.title-text').should('contain', 'DocType'); cy.get('.title-text').should('contain', 'DocType');


+ 4
- 6
cypress/integration/relative_time_filters.js View File

@@ -18,14 +18,13 @@ context('Relative Timeframe', () => {
cy.get('.fieldname-select-area input').type("Due Date{enter}", { delay: 100 }); cy.get('.fieldname-select-area input').type("Due Date{enter}", { delay: 100 });
cy.get('select.condition.form-control').select("Timespan"); cy.get('select.condition.form-control').select("Timespan");
cy.get('.filter-field select.input-with-feedback.form-control').select("last week"); cy.get('.filter-field select.input-with-feedback.form-control').select("last week");
cy.server();
cy.route('POST', '/api/method/frappe.desk.reportview.get').as('list_refresh');
cy.intercept('POST', '/api/method/frappe.desk.reportview.get').as('list_refresh');
// cy.get('.filter-box .btn:contains("Apply")').click(); // cy.get('.filter-box .btn:contains("Apply")').click();
cy.get('.filter-popover .apply-filters').click({ force: true }); cy.get('.filter-popover .apply-filters').click({ force: true });
cy.wait('@list_refresh'); cy.wait('@list_refresh');
cy.get('.list-row-container').its('length').should('eq', 1); cy.get('.list-row-container').its('length').should('eq', 1);
cy.get('.list-row-container').should('contain', 'this is second todo'); cy.get('.list-row-container').should('contain', 'this is second todo');
cy.route('POST', '/api/method/frappe.model.utils.user_settings.save')
cy.intercept('POST', '/api/method/frappe.model.utils.user_settings.save')
.as('save_user_settings'); .as('save_user_settings');
cy.clear_filters(); cy.clear_filters();
cy.wait('@save_user_settings'); cy.wait('@save_user_settings');
@@ -38,14 +37,13 @@ context('Relative Timeframe', () => {
cy.get('.fieldname-select-area input').type("Due Date{enter}", { delay: 100 }); cy.get('.fieldname-select-area input').type("Due Date{enter}", { delay: 100 });
cy.get('select.condition.form-control').select("Timespan"); cy.get('select.condition.form-control').select("Timespan");
cy.get('.filter-field select.input-with-feedback.form-control').select("next week"); cy.get('.filter-field select.input-with-feedback.form-control').select("next week");
cy.server();
cy.route('POST', '/api/method/frappe.desk.reportview.get').as('list_refresh');
cy.intercept('POST', '/api/method/frappe.desk.reportview.get').as('list_refresh');
// cy.get('.filter-box .btn:contains("Apply")').click(); // cy.get('.filter-box .btn:contains("Apply")').click();
cy.get('.filter-popover .apply-filters').click({ force: true }); cy.get('.filter-popover .apply-filters').click({ force: true });
cy.wait('@list_refresh'); cy.wait('@list_refresh');
// cy.get('.list-row-container').its('length').should('eq', 1); // cy.get('.list-row-container').its('length').should('eq', 1);
// cy.get('.list-row').should('contain', 'this is first todo'); // cy.get('.list-row').should('contain', 'this is first todo');
cy.route('POST', '/api/method/frappe.model.utils.user_settings.save')
cy.intercept('POST', '/api/method/frappe.model.utils.user_settings.save')
.as('save_user_settings'); .as('save_user_settings');
// cy.get('.remove-filter').click(); // cy.get('.remove-filter').click();
cy.clear_filters(); cy.clear_filters();


+ 1
- 2
cypress/integration/report_view.js View File

@@ -16,8 +16,7 @@ context('Report View', () => {
}, true).as('doc'); }, true).as('doc');
}); });
it('Field with enabled allow_on_submit should be editable.', () => { it('Field with enabled allow_on_submit should be editable.', () => {
cy.server();
cy.route('POST', 'api/method/frappe.client.set_value').as('value-update');
cy.intercept('POST', 'api/method/frappe.client.set_value').as('value-update');
cy.visit(`/app/List/${doctype_name}/Report`); cy.visit(`/app/List/${doctype_name}/Report`);
// check status column added from docstatus // check status column added from docstatus
cy.get('.dt-row-0 > .dt-cell--col-3').should('contain', 'Submitted'); cy.get('.dt-row-0 > .dt-cell--col-3').should('contain', 'Submitted');


+ 2
- 3
cypress/integration/table_multiselect.js View File

@@ -17,11 +17,10 @@ context('Table MultiSelect', () => {
.as('selected-value'); .as('selected-value');
cy.get('@selected-value').should('contain', 'test@erpnext.com'); cy.get('@selected-value').should('contain', 'test@erpnext.com');


cy.server();
cy.route('POST', '/api/method/frappe.desk.form.save.savedocs').as('save_form');
cy.intercept('POST', '/api/method/frappe.desk.form.save.savedocs').as('save_form');
// trigger save // trigger save
cy.get('.primary-action').click(); cy.get('.primary-action').click();
cy.wait('@save_form').its('status').should('eq', 200);
cy.wait('@save_form').its('response.statusCode').should('eq', 200);
cy.get('@selected-value').should('contain', 'test@erpnext.com'); cy.get('@selected-value').should('contain', 'test@erpnext.com');
}); });




+ 3
- 0
cypress/support/commands.js View File

@@ -320,4 +320,7 @@ Cypress.Commands.add('clear_filters', () => {
cy.wait(300); cy.wait(300);
cy.get('.filter-popover').should('exist'); cy.get('.filter-popover').should('exist');
cy.get('.filter-popover').find('.clear-filters').click(); cy.get('.filter-popover').find('.clear-filters').click();
cy.window().its('cur_list').then(cur_list => {
cur_list && cur_list.filter_area && cur_list.filter_area.clear();
});
}); });

Loading…
Cancel
Save