|
- context('Form Tour', () => {
- before(() => {
- cy.login();
- cy.visit('/app/form-tour');
- return cy.window().its('frappe').then(frappe => {
- return frappe.call("frappe.tests.ui_test_helpers.create_form_tour");
- });
- });
-
- const open_test_form_tour = () => {
- cy.visit('/app/form-tour/Test Form Tour');
- cy.findByRole('button', {name: 'Show Tour'}).should('be.visible').as('show_tour');
- cy.get('@show_tour').click();
- cy.wait(500);
- cy.url().should('include', '/app/contact');
- };
-
- it('jump to a form tour', open_test_form_tour);
-
- it('navigates a form tour', () => {
- open_test_form_tour();
-
- cy.get('.frappe-driver').should('be.visible');
- cy.get('.frappe-control[data-fieldname="first_name"]').as('first_name');
- cy.get('@first_name').should('have.class', 'driver-highlighted-element');
- cy.get('.frappe-driver').findByRole('button', {name: 'Next'}).as('next_btn');
-
- // next btn shouldn't move to next step, if first name is not entered
- cy.get('@next_btn').click();
- cy.wait(500);
- cy.get('@first_name').should('have.class', 'driver-highlighted-element');
-
- // after filling the field, next step should be highlighted
- cy.fill_field('first_name', 'Test Name', 'Data');
- cy.wait(500);
- cy.get('@next_btn').click();
- cy.wait(500);
-
- // assert field is highlighted
- cy.get('.frappe-control[data-fieldname="last_name"]').as('last_name');
- cy.get('@last_name').should('have.class', 'driver-highlighted-element');
-
- // after filling the field, next step should be highlighted
- cy.fill_field('last_name', 'Test Last Name', 'Data');
- cy.wait(500);
- cy.get('@next_btn').click();
- cy.wait(500);
-
- // assert field is highlighted
- cy.get('.frappe-control[data-fieldname="phone_nos"]').as('phone_nos');
- cy.get('@phone_nos').should('have.class', 'driver-highlighted-element');
-
- // move to next step
- cy.wait(500);
- cy.get('@next_btn').click();
- cy.wait(500);
-
- // assert add row btn is highlighted
- cy.get('@phone_nos').find('.grid-add-row').as('add_row');
- cy.get('@add_row').should('have.class', 'driver-highlighted-element');
-
- // add a row & move to next step
- cy.wait(500);
- cy.get('@add_row').click();
- cy.wait(500);
-
- // assert table field is highlighted
- cy.get('.grid-row-open .frappe-control[data-fieldname="phone"]').as('phone');
- cy.get('@phone').should('have.class', 'driver-highlighted-element');
- // enter value in a table field
- let field = cy.fill_table_field('phone_nos', '1', 'phone', '1234567890');
- field.blur();
-
- // move to collapse row step
- cy.wait(500);
- cy.get('.driver-popover-title').contains('Test Title 4').siblings().get('@next_btn').click();
- cy.wait(500);
- // collapse row
- cy.get('.grid-row-open .grid-collapse-row').click();
- cy.wait(500);
-
- // assert save btn is highlighted
- cy.get('.primary-action').should('have.class', 'driver-highlighted-element');
- cy.wait(500);
- cy.get('.frappe-driver').findByRole('button', {name: 'Save'}).should('be.visible');
-
- });
- });
|