89 lines
3.4 KiB
JavaScript
89 lines
3.4 KiB
JavaScript
import doctype_with_child_table from '../fixtures/doctype_with_child_table';
|
|
import child_table_doctype from '../fixtures/child_table_doctype';
|
|
import doctype_to_link from '../fixtures/doctype_to_link';
|
|
const doctype_to_link_name = doctype_to_link.name;
|
|
const child_table_doctype_name = child_table_doctype.name;
|
|
|
|
context('Dashboard links', () => {
|
|
before(() => {
|
|
cy.visit('/login');
|
|
cy.login();
|
|
cy.insert_doc('DocType', child_table_doctype, true);
|
|
cy.insert_doc('DocType', doctype_with_child_table, true);
|
|
cy.insert_doc('DocType', doctype_to_link, true);
|
|
return cy.window().its('frappe').then(frappe => {
|
|
return frappe.xcall("frappe.tests.ui_test_helpers.update_child_table", {
|
|
name: child_table_doctype_name
|
|
});
|
|
});
|
|
});
|
|
|
|
it('Adding a new contact, checking for the counter on the dashboard and deleting the created contact', () => {
|
|
cy.visit('/app/contact');
|
|
cy.clear_filters();
|
|
|
|
cy.visit('/app/user');
|
|
cy.get('.list-row-col > .level-item > .ellipsis').eq(0).click({ force: true });
|
|
|
|
//To check if initially the dashboard contains only the "Contact" link and there is no counter
|
|
cy.get('[data-doctype="Contact"]').should('contain', 'Contact');
|
|
|
|
//Adding a new contact
|
|
cy.get('.document-link-badge[data-doctype="Contact"]').click();
|
|
cy.wait(300);
|
|
cy.findByRole('button', {name: 'Add Contact'}).should('be.visible');
|
|
cy.findByRole('button', {name: 'Add Contact'}).click();
|
|
cy.get('[data-doctype="Contact"][data-fieldname="first_name"]').type('Admin');
|
|
cy.findByRole('button', {name: 'Save'}).click();
|
|
cy.visit('/app/user');
|
|
cy.get('.list-row-col > .level-item > .ellipsis').eq(0).click({ force: true });
|
|
|
|
//To check if the counter for contact doc is "1" after adding the contact
|
|
cy.get('[data-doctype="Contact"] > .count').should('contain', '1');
|
|
cy.get('[data-doctype="Contact"]').contains('Contact').click();
|
|
|
|
//Deleting the newly created contact
|
|
cy.visit('/app/contact');
|
|
cy.get('.list-subject > .select-like > .list-row-checkbox').eq(0).click({ force: true });
|
|
cy.findByRole('button', {name: 'Actions'}).click();
|
|
cy.get('.actions-btn-group [data-label="Delete"]').click();
|
|
cy.findByRole('button', {name: 'Yes'}).click({delay: 700});
|
|
|
|
|
|
//To check if the counter from the "Contact" doc link is removed
|
|
cy.wait(700);
|
|
cy.visit('/app/user');
|
|
cy.get('.list-row-col > .level-item > .ellipsis').eq(0).click({ force: true });
|
|
cy.get('[data-doctype="Contact"]').should('contain', 'Contact');
|
|
});
|
|
|
|
it('Report link in dashboard', () => {
|
|
cy.visit('/app/user');
|
|
cy.visit('/app/user/Administrator');
|
|
cy.get('[data-doctype="Contact"]').should('contain', 'Contact');
|
|
cy.findByText('Connections');
|
|
cy.window()
|
|
.its('cur_frm')
|
|
.then(cur_frm => {
|
|
cur_frm.dashboard.data.reports = [
|
|
{
|
|
'label': 'Reports',
|
|
'items': ['Website Analytics']
|
|
}
|
|
];
|
|
cur_frm.dashboard.render_report_links();
|
|
cy.get('[data-report="Website Analytics"]').contains('Website Analytics').click();
|
|
cy.findByText('Website Analytics');
|
|
});
|
|
});
|
|
|
|
it('check if child table is populated with linked field on creation from dashboard link', () => {
|
|
cy.new_form(doctype_to_link_name);
|
|
cy.fill_field("title", "Test Linking");
|
|
cy.findByRole("button", {name: "Save"}).click();
|
|
|
|
cy.get('.document-link .btn-new').click();
|
|
cy.get('.frappe-control[data-fieldname="child_table"] .rows .data-row .col[data-fieldname="doctype_to_link"]')
|
|
.should('contain.text', 'Test Linking');
|
|
});
|
|
});
|