133 lines
3.8 KiB
JavaScript
133 lines
3.8 KiB
JavaScript
context('Dynamic Link', () => {
|
|
before(() => {
|
|
cy.login();
|
|
cy.visit('/app/doctype');
|
|
return cy.window().its('frappe').then(frappe => {
|
|
return frappe.xcall('frappe.tests.ui_test_helpers.create_doctype', {
|
|
name: 'Test Dynamic Link',
|
|
fields: [
|
|
{
|
|
"label": "Document Type",
|
|
"fieldname": "doc_type",
|
|
"fieldtype": "Link",
|
|
"options": "DocType",
|
|
"in_list_view": 1,
|
|
"in_standard_filter": 1,
|
|
},
|
|
{
|
|
"label": "Document ID",
|
|
"fieldname": "doc_id",
|
|
"fieldtype": "Dynamic Link",
|
|
"options": "doc_type",
|
|
"in_list_view": 1,
|
|
"in_standard_filter": 1,
|
|
},
|
|
]
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
function get_dialog_with_dynamic_link() {
|
|
return cy.dialog({
|
|
title: 'Dynamic Link',
|
|
fields: [{
|
|
"label": "Document Type",
|
|
"fieldname": "doc_type",
|
|
"fieldtype": "Link",
|
|
"options": "DocType",
|
|
"in_list_view": 1,
|
|
},
|
|
{
|
|
"label": "Document ID",
|
|
"fieldname": "doc_id",
|
|
"fieldtype": "Dynamic Link",
|
|
"options": "doc_type",
|
|
"in_list_view": 1,
|
|
}]
|
|
});
|
|
}
|
|
|
|
function get_dialog_with_dynamic_link_option() {
|
|
return cy.dialog({
|
|
title: 'Dynamic Link',
|
|
fields: [{
|
|
"label": "Document Type",
|
|
"fieldname": "doc_type",
|
|
"fieldtype": "Link",
|
|
"options": "DocType",
|
|
"in_list_view": 1,
|
|
},
|
|
{
|
|
"label": "Document ID",
|
|
"fieldname": "doc_id",
|
|
"fieldtype": "Dynamic Link",
|
|
"get_options": () => {
|
|
return "User";
|
|
},
|
|
"in_list_view": 1,
|
|
}]
|
|
});
|
|
}
|
|
|
|
it('Creating a dynamic link by passing option as function and verifying it in a dialog', () => {
|
|
get_dialog_with_dynamic_link_option().as('dialog');
|
|
cy.get_field('doc_type').clear();
|
|
cy.fill_field('doc_type', 'User', 'Link');
|
|
cy.get_field('doc_id').click();
|
|
|
|
//Checking if the listbox have length greater than 0
|
|
cy.get('[data-fieldname="doc_id"]').find('.awesomplete').find("li").its('length').should('be.gte', 0);
|
|
cy.get('.btn-modal-close').click({force: true});
|
|
});
|
|
|
|
it('Creating a dynamic link and verifying it in a dialog', () => {
|
|
get_dialog_with_dynamic_link().as('dialog');
|
|
cy.get_field('doc_type').clear();
|
|
cy.fill_field('doc_type', 'User', 'Link');
|
|
cy.get_field('doc_id').click();
|
|
|
|
//Checking if the listbox have length greater than 0
|
|
cy.get('[data-fieldname="doc_id"]').find('.awesomplete').find("li").its('length').should('be.gte', 0);
|
|
cy.get('.btn-modal-close').click({force: true, multiple: true});
|
|
});
|
|
|
|
it('Creating a dynamic link and verifying it', () => {
|
|
cy.visit('/app/test-dynamic-link');
|
|
|
|
//Clicking on the Document ID field
|
|
cy.get_field('doc_type').clear();
|
|
|
|
//Entering User in the Doctype field
|
|
cy.fill_field('doc_type', 'User', 'Link', {delay: 500});
|
|
cy.get_field('doc_id').click();
|
|
|
|
//Checking if the listbox have length greater than 0
|
|
cy.get('[data-fieldname="doc_id"]').find('.awesomplete').find("li").its('length').should('be.gte', 0);
|
|
|
|
//Opening a new form for dynamic link doctype
|
|
cy.new_form('Test Dynamic Link');
|
|
cy.get_field('doc_type').clear();
|
|
|
|
//Entering User in the Doctype field
|
|
cy.fill_field('doc_type', 'User', 'Link', {delay: 500});
|
|
cy.get_field('doc_id').click();
|
|
|
|
//Checking if the listbox have length greater than 0
|
|
cy.get('[data-fieldname="doc_id"]').find('.awesomplete').find("li").its('length').should('be.gte', 0);
|
|
cy.get_field('doc_type').clear();
|
|
|
|
//Entering System Settings in the Doctype field
|
|
cy.intercept('/api').as('api/*/search_link.py');
|
|
cy.fill_field('doc_type', 'System Settings', 'Link', {delay: 500});
|
|
cy.wait('@api');
|
|
cy.get(`[data-fieldname="doc_type"] ul:visible li:first-child`)
|
|
.click({scrollBehavior: false});
|
|
|
|
cy.get_field('doc_id').click();
|
|
|
|
//Checking if the system throws error
|
|
cy.get('.modal-title').should('have.text', 'Error');
|
|
cy.get('.msgprint').should('have.text', 'System Settings is not a valid DocType for Dynamic Link');
|
|
});
|
|
});
|