From 1ec80d0a06c2c7514ec0f7fd2a9982ca04627213 Mon Sep 17 00:00:00 2001 From: hrwx Date: Tue, 21 Dec 2021 01:49:19 +0000 Subject: [PATCH 1/6] fix: update df of grid controls --- frappe/public/js/frappe/form/grid.js | 1 + frappe/public/js/frappe/form/layout.js | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/frappe/public/js/frappe/form/grid.js b/frappe/public/js/frappe/form/grid.js index 8b615f3c59..feeb18f0c5 100644 --- a/frappe/public/js/frappe/form/grid.js +++ b/frappe/public/js/frappe/form/grid.js @@ -368,6 +368,7 @@ export default class Grid { if (this.grid_rows[ri] && !append_row) { var grid_row = this.grid_rows[ri]; grid_row.doc = d; + grid_row.docfields = this.docfields; grid_row.refresh(); } else { var grid_row = new GridRow({ diff --git a/frappe/public/js/frappe/form/layout.js b/frappe/public/js/frappe/form/layout.js index 0de6b1db0d..3da7a4ffba 100644 --- a/frappe/public/js/frappe/form/layout.js +++ b/frappe/public/js/frappe/form/layout.js @@ -399,8 +399,8 @@ frappe.ui.form.Layout = class Layout { fieldobj.doc = me.doc; fieldobj.doctype = me.doc.doctype; fieldobj.docname = me.doc.name; - fieldobj.df = frappe.meta.get_docfield(me.doc.doctype, - fieldobj.df.fieldname, me.doc.name) || fieldobj.df; + fieldobj.df = fieldobj.df || frappe.meta.get_docfield(me.doc.doctype, + fieldobj.df.fieldname, me.doc.name); // on form change, permissions can change if (me.frm) { From 60ddb726a1caea61b1871f685c62915b9a4b7e09 Mon Sep 17 00:00:00 2001 From: hrwx Date: Thu, 30 Dec 2021 00:57:56 +0530 Subject: [PATCH 2/6] feat: override depends_on properties --- frappe/public/js/frappe/form/form.js | 13 +++++++++++++ frappe/public/js/frappe/form/grid.js | 14 ++++++++++---- frappe/public/js/frappe/form/grid_row.js | 11 ++++++++--- frappe/public/js/frappe/form/layout.js | 23 ++++++++++++++++------- 4 files changed, 47 insertions(+), 14 deletions(-) diff --git a/frappe/public/js/frappe/form/form.js b/frappe/public/js/frappe/form/form.js index 9a75e510da..7c4de1875b 100644 --- a/frappe/public/js/frappe/form/form.js +++ b/frappe/public/js/frappe/form/form.js @@ -1365,6 +1365,13 @@ frappe.ui.form.Form = class FrappeForm { set_df_property(fieldname, property, value, docname, table_field, table_row_name=null) { let df; + let override_depends_on_properties_map = { + "reqd": "override_mandatory_depends_on", + "read_only": "override_read_only_depends_on", + "hidden": "override_depends_on" + }; + let override_property = override_depends_on_properties_map[property]; + if (!docname || !table_field) { df = this.get_docfield(fieldname); } else { @@ -1374,8 +1381,11 @@ frappe.ui.form.Form = class FrappeForm { df = frappe.meta.get_docfield(filtered_fields[0].parent, table_field, table_row_name); } } + if (df && df[property] != value) { df[property] = value; + if (override_property) df[override_property] = value; + if (table_field && table_row_name) { if (this.fields_dict[fieldname].grid.grid_rows_by_docname[table_row_name]) { this.fields_dict[fieldname].grid.grid_rows_by_docname[table_row_name].refresh_field(fieldname); @@ -1389,18 +1399,21 @@ frappe.ui.form.Form = class FrappeForm { toggle_enable(fnames, enable) { this.field_map(fnames, function(field) { field.read_only = enable ? 0 : 1; + field.override_read_only_depends_on = !field.read_only; }); } toggle_reqd(fnames, mandatory) { this.field_map(fnames, function(field) { field.reqd = mandatory ? true : false; + field.override_mandatory_depends_on = !field.reqd; }); } toggle_display(fnames, show) { this.field_map(fnames, function(field) { field.hidden = show ? 0 : 1; + field.override_hidden_depends_on = !field.hidden; }); } diff --git a/frappe/public/js/frappe/form/grid.js b/frappe/public/js/frappe/form/grid.js index feeb18f0c5..a9234ed43a 100644 --- a/frappe/public/js/frappe/form/grid.js +++ b/frappe/public/js/frappe/form/grid.js @@ -368,7 +368,7 @@ export default class Grid { if (this.grid_rows[ri] && !append_row) { var grid_row = this.grid_rows[ri]; grid_row.doc = d; - grid_row.docfields = this.docfields; + grid_row.set_docfields(this.docfields); grid_row.refresh(); } else { var grid_row = new GridRow({ @@ -556,17 +556,23 @@ export default class Grid { } toggle_reqd(fieldname, reqd) { - this.get_docfield(fieldname).reqd = reqd; + let field = this.get_docfield(fieldname); + field.reqd = reqd; + field.override_mandatory_depends_on = !field.reqd; this.debounced_refresh(); } toggle_enable(fieldname, enable) { - this.get_docfield(fieldname).read_only = enable ? 0 : 1; + let field = this.get_docfield(fieldname); + field.read_only = enable ? 0 : 1; + field.override_read_only_depends_on = !field.read_only; this.debounced_refresh(); } toggle_display(fieldname, show) { - this.get_docfield(fieldname).hidden = show ? 0 : 1; + let field = this.get_docfield(fieldname); + field.hidden = show ? 0 : 1; + field.override_hidden_depends_on = !field.hidden; this.debounced_refresh(); } diff --git a/frappe/public/js/frappe/form/grid_row.js b/frappe/public/js/frappe/form/grid_row.js index 96e502663d..574075cad0 100644 --- a/frappe/public/js/frappe/form/grid_row.js +++ b/frappe/public/js/frappe/form/grid_row.js @@ -6,9 +6,7 @@ export default class GridRow { this.on_grid_fields = []; $.extend(this, opts); if (this.doc && this.parent_df.options) { - frappe.meta.make_docfield_copy_for(this.parent_df.options, this.doc.name, this.docfields); - const docfields = frappe.meta.get_docfields(this.parent_df.options, this.doc.name); - this.docfields = docfields.length ? docfields : opts.docfields; + this.set_docfields(); } this.columns = {}; this.columns_list = []; @@ -41,6 +39,13 @@ export default class GridRow { this.set_data(); } } + set_docfields(_docfields) { + if (_docfields) this.docfields = _docfields; + + frappe.meta.make_docfield_copy_for(this.parent_df.options, this.doc.name, this.docfields); + const docfields = frappe.meta.get_docfields(this.parent_df.options, this.doc.name); + this.docfields = docfields.length ? docfields : this.docfields; + } set_data() { this.wrapper.data({ "doc": this.doc diff --git a/frappe/public/js/frappe/form/layout.js b/frappe/public/js/frappe/form/layout.js index 3da7a4ffba..0ce84cb486 100644 --- a/frappe/public/js/frappe/form/layout.js +++ b/frappe/public/js/frappe/form/layout.js @@ -399,8 +399,8 @@ frappe.ui.form.Layout = class Layout { fieldobj.doc = me.doc; fieldobj.doctype = me.doc.doctype; fieldobj.docname = me.doc.name; - fieldobj.df = fieldobj.df || frappe.meta.get_docfield(me.doc.doctype, - fieldobj.df.fieldname, me.doc.name); + fieldobj.df = frappe.meta.get_docfield(me.doc.doctype, + fieldobj.df.fieldname, me.doc.name) || fieldobj.df; // on form change, permissions can change if (me.frm) { @@ -547,9 +547,18 @@ frappe.ui.form.Layout = class Layout { } refresh_dependency() { - // Resolve "depends_on" and show / hide accordingly + /** + Resolve "depends_on" and show / hide accordingly + build dependants' dictionary + + Allows to override depends_on, mandatory_depends_on and read_only_depends_on + if either of the override_depends_on, override_mandatory_depends_on and override_read_only_depends_on + flags are set in df. + + The override flag is set in in grid and form js when we try and override df property. + + */ - // build dependants' dictionary let has_dep = false; for (let fkey in this.fields_list) { @@ -566,7 +575,7 @@ frappe.ui.form.Layout = class Layout { for (let i = this.fields_list.length - 1; i >= 0; i--) { let f = this.fields_list[i]; f.guardian_has_value = true; - if (f.df.depends_on) { + if (f.df.depends_on && !f.df.override_hidden_depends_on) { // evaluate guardian f.guardian_has_value = this.evaluate_depends_on_value(f.df.depends_on); @@ -585,11 +594,11 @@ frappe.ui.form.Layout = class Layout { } } - if (f.df.mandatory_depends_on) { + if (f.df.mandatory_depends_on && !f.df.override_mandatory_depends_on) { this.set_dependant_property(f.df.mandatory_depends_on, f.df.fieldname, 'reqd'); } - if (f.df.read_only_depends_on) { + if (f.df.read_only_depends_on && !f.df.override_read_only_depends_on) { this.set_dependant_property(f.df.read_only_depends_on, f.df.fieldname, 'read_only'); } } From 2c05ff85e2da5bce7216abd00bc23118936cae80 Mon Sep 17 00:00:00 2001 From: hrwx Date: Thu, 30 Dec 2021 11:39:50 +0530 Subject: [PATCH 3/6] fix: set override to true if df is tweaked --- frappe/public/js/frappe/form/form.js | 8 ++++---- frappe/public/js/frappe/form/grid.js | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/frappe/public/js/frappe/form/form.js b/frappe/public/js/frappe/form/form.js index 7c4de1875b..33ed1ed274 100644 --- a/frappe/public/js/frappe/form/form.js +++ b/frappe/public/js/frappe/form/form.js @@ -1384,7 +1384,7 @@ frappe.ui.form.Form = class FrappeForm { if (df && df[property] != value) { df[property] = value; - if (override_property) df[override_property] = value; + if (override_property) df[override_property] = true; if (table_field && table_row_name) { if (this.fields_dict[fieldname].grid.grid_rows_by_docname[table_row_name]) { @@ -1399,21 +1399,21 @@ frappe.ui.form.Form = class FrappeForm { toggle_enable(fnames, enable) { this.field_map(fnames, function(field) { field.read_only = enable ? 0 : 1; - field.override_read_only_depends_on = !field.read_only; + field.override_read_only_depends_on = true; }); } toggle_reqd(fnames, mandatory) { this.field_map(fnames, function(field) { field.reqd = mandatory ? true : false; - field.override_mandatory_depends_on = !field.reqd; + field.override_mandatory_depends_on = true; }); } toggle_display(fnames, show) { this.field_map(fnames, function(field) { field.hidden = show ? 0 : 1; - field.override_hidden_depends_on = !field.hidden; + field.override_hidden_depends_on = true; }); } diff --git a/frappe/public/js/frappe/form/grid.js b/frappe/public/js/frappe/form/grid.js index a9234ed43a..f3635077f1 100644 --- a/frappe/public/js/frappe/form/grid.js +++ b/frappe/public/js/frappe/form/grid.js @@ -558,21 +558,21 @@ export default class Grid { toggle_reqd(fieldname, reqd) { let field = this.get_docfield(fieldname); field.reqd = reqd; - field.override_mandatory_depends_on = !field.reqd; + field.override_mandatory_depends_on = true; this.debounced_refresh(); } toggle_enable(fieldname, enable) { let field = this.get_docfield(fieldname); field.read_only = enable ? 0 : 1; - field.override_read_only_depends_on = !field.read_only; + field.override_read_only_depends_on = true; this.debounced_refresh(); } toggle_display(fieldname, show) { let field = this.get_docfield(fieldname); field.hidden = show ? 0 : 1; - field.override_hidden_depends_on = !field.hidden; + field.override_hidden_depends_on = true; this.debounced_refresh(); } From 8c873b7bc1dfb9ceeaf02ffe6be1a0db2d41d633 Mon Sep 17 00:00:00 2001 From: hrwx Date: Sat, 12 Feb 2022 22:20:02 +0000 Subject: [PATCH 4/6] chore: update apis with update_docfield_property --- frappe/public/js/frappe/form/form.js | 10 ---------- frappe/public/js/frappe/form/grid.js | 20 ++++++-------------- frappe/public/js/frappe/form/grid_row.js | 11 +++-------- frappe/public/js/frappe/form/layout.js | 13 +++---------- 4 files changed, 12 insertions(+), 42 deletions(-) diff --git a/frappe/public/js/frappe/form/form.js b/frappe/public/js/frappe/form/form.js index c03b590927..53e86b9cde 100644 --- a/frappe/public/js/frappe/form/form.js +++ b/frappe/public/js/frappe/form/form.js @@ -1363,12 +1363,6 @@ frappe.ui.form.Form = class FrappeForm { set_df_property(fieldname, property, value, docname, table_field, table_row_name=null) { let df; - let override_depends_on_properties_map = { - "reqd": "override_mandatory_depends_on", - "read_only": "override_read_only_depends_on", - "hidden": "override_depends_on" - }; - let override_property = override_depends_on_properties_map[property]; if (!docname || !table_field) { df = this.get_docfield(fieldname); @@ -1382,7 +1376,6 @@ frappe.ui.form.Form = class FrappeForm { if (df && df[property] != value) { df[property] = value; - if (override_property) df[override_property] = true; if (table_field && table_row_name) { if (this.fields_dict[fieldname].grid.grid_rows_by_docname[table_row_name]) { @@ -1397,21 +1390,18 @@ frappe.ui.form.Form = class FrappeForm { toggle_enable(fnames, enable) { this.field_map(fnames, function(field) { field.read_only = enable ? 0 : 1; - field.override_read_only_depends_on = true; }); } toggle_reqd(fnames, mandatory) { this.field_map(fnames, function(field) { field.reqd = mandatory ? true : false; - field.override_mandatory_depends_on = true; }); } toggle_display(fnames, show) { this.field_map(fnames, function(field) { field.hidden = show ? 0 : 1; - field.override_hidden_depends_on = true; }); } diff --git a/frappe/public/js/frappe/form/grid.js b/frappe/public/js/frappe/form/grid.js index f3635077f1..0fa36e7e5d 100644 --- a/frappe/public/js/frappe/form/grid.js +++ b/frappe/public/js/frappe/form/grid.js @@ -368,7 +368,6 @@ export default class Grid { if (this.grid_rows[ri] && !append_row) { var grid_row = this.grid_rows[ri]; grid_row.doc = d; - grid_row.set_docfields(this.docfields); grid_row.refresh(); } else { var grid_row = new GridRow({ @@ -503,10 +502,9 @@ export default class Grid { set_column_disp(fieldname, show) { if ($.isArray(fieldname)) { - for (var i = 0, l = fieldname.length; i < l; i++) { - var fname = fieldname[i]; - this.get_docfield(fname).hidden = show ? 0 : 1; - this.set_editable_grid_column_disp(fname, show); + for (let field of fieldname) { + this.update_docfield_property(field, "hidden", show) + this.set_editable_grid_column_disp(field, show); } } else { this.get_docfield(fieldname).hidden = show ? 0 : 1; @@ -556,23 +554,17 @@ export default class Grid { } toggle_reqd(fieldname, reqd) { - let field = this.get_docfield(fieldname); - field.reqd = reqd; - field.override_mandatory_depends_on = true; + this.update_docfield_property(fieldname, "reqd", reqd); this.debounced_refresh(); } toggle_enable(fieldname, enable) { - let field = this.get_docfield(fieldname); - field.read_only = enable ? 0 : 1; - field.override_read_only_depends_on = true; + this.update_docfield_property(fieldname, "read_only", enable ? 0 : 1); this.debounced_refresh(); } toggle_display(fieldname, show) { - let field = this.get_docfield(fieldname); - field.hidden = show ? 0 : 1; - field.override_hidden_depends_on = true; + this.update_docfield_property(fieldname, "hidden", show ? 0 : 1); this.debounced_refresh(); } diff --git a/frappe/public/js/frappe/form/grid_row.js b/frappe/public/js/frappe/form/grid_row.js index cb42ec5da1..a40f428969 100644 --- a/frappe/public/js/frappe/form/grid_row.js +++ b/frappe/public/js/frappe/form/grid_row.js @@ -6,7 +6,9 @@ export default class GridRow { this.on_grid_fields = []; $.extend(this, opts); if (this.doc && this.parent_df.options) { - this.set_docfields(); + frappe.meta.make_docfield_copy_for(this.parent_df.options, this.doc.name, this.docfields); + const docfields = frappe.meta.get_docfields(this.parent_df.options, this.doc.name); + this.docfields = docfields.length ? docfields : opts.docfields; } this.columns = {}; this.columns_list = []; @@ -39,13 +41,6 @@ export default class GridRow { this.set_data(); } } - set_docfields(_docfields) { - if (_docfields) this.docfields = _docfields; - - frappe.meta.make_docfield_copy_for(this.parent_df.options, this.doc.name, this.docfields); - const docfields = frappe.meta.get_docfields(this.parent_df.options, this.doc.name); - this.docfields = docfields.length ? docfields : this.docfields; - } set_data() { this.wrapper.data({ "doc": this.doc diff --git a/frappe/public/js/frappe/form/layout.js b/frappe/public/js/frappe/form/layout.js index 0ce84cb486..1378718495 100644 --- a/frappe/public/js/frappe/form/layout.js +++ b/frappe/public/js/frappe/form/layout.js @@ -550,13 +550,6 @@ frappe.ui.form.Layout = class Layout { /** Resolve "depends_on" and show / hide accordingly build dependants' dictionary - - Allows to override depends_on, mandatory_depends_on and read_only_depends_on - if either of the override_depends_on, override_mandatory_depends_on and override_read_only_depends_on - flags are set in df. - - The override flag is set in in grid and form js when we try and override df property. - */ let has_dep = false; @@ -575,7 +568,7 @@ frappe.ui.form.Layout = class Layout { for (let i = this.fields_list.length - 1; i >= 0; i--) { let f = this.fields_list[i]; f.guardian_has_value = true; - if (f.df.depends_on && !f.df.override_hidden_depends_on) { + if (f.df.depends_on) { // evaluate guardian f.guardian_has_value = this.evaluate_depends_on_value(f.df.depends_on); @@ -594,11 +587,11 @@ frappe.ui.form.Layout = class Layout { } } - if (f.df.mandatory_depends_on && !f.df.override_mandatory_depends_on) { + if (f.df.mandatory_depends_on) { this.set_dependant_property(f.df.mandatory_depends_on, f.df.fieldname, 'reqd'); } - if (f.df.read_only_depends_on && !f.df.override_read_only_depends_on) { + if (f.df.read_only_depends_on) { this.set_dependant_property(f.df.read_only_depends_on, f.df.fieldname, 'read_only'); } } From be7289b78eb3713fde2ec30d53d0188b71e6ffcd Mon Sep 17 00:00:00 2001 From: hrwx Date: Sat, 12 Feb 2022 22:21:42 +0000 Subject: [PATCH 5/6] fix: add test cases for grid --- cypress/integration/grid.js | 92 ++++++++++++++++++++++++++++ frappe/public/js/frappe/form/grid.js | 2 +- 2 files changed, 93 insertions(+), 1 deletion(-) create mode 100644 cypress/integration/grid.js diff --git a/cypress/integration/grid.js b/cypress/integration/grid.js new file mode 100644 index 0000000000..da2d2ddc2b --- /dev/null +++ b/cypress/integration/grid.js @@ -0,0 +1,92 @@ +context('Grid', () => { + beforeEach(() => { + cy.login(); + cy.visit('/app/website'); + }); + before(() => { + cy.login(); + cy.visit('/app/website'); + return cy.window().its('frappe').then(frappe => { + return frappe.call("frappe.tests.ui_test_helpers.create_contacts_and_update_meta"); + }); + }); + it('update docfield property using update_docfield_property', () => { + cy.visit('/app/contact/Test Contact'); + cy.window().its("cur_frm").then(frm => { + cy.get('.frappe-control[data-fieldname="phone_nos"]').as('table'); + let field = frm.get_field("phone_nos"); + field.grid.update_docfield_property("is_primary_phone", "hidden", true); + + cy.get('@table').find('[data-idx="1"] .edit-grid-row').click(); + cy.get('.grid-row-open').as('table-form'); + cy.get('@table-form').find('.frappe-control[data-fieldname="is_primary_phone"]').should("be.hidden"); + cy.get('@table-form').find('.grid-footer-toolbar').click(); + + cy.get('@table').find('[data-idx="2"] .edit-grid-row').click(); + cy.get('.grid-row-open').as('table-form'); + cy.get('@table-form').find('.frappe-control[data-fieldname="is_primary_phone"]').should("be.hidden"); + cy.get('@table-form').find('.grid-footer-toolbar').click(); + }); + }); + it('update docfield property using toggle_display', () => { + cy.visit('/app/contact/Test Contact'); + cy.window().its("cur_frm").then(frm => { + cy.get('.frappe-control[data-fieldname="phone_nos"]').as('table'); + let field = frm.get_field("phone_nos"); + field.grid.toggle_display("is_primary_mobile_no", false); + + cy.get('@table').find('[data-idx="1"] .edit-grid-row').click(); + cy.get('.grid-row-open').as('table-form'); + cy.get('@table-form').find('.frappe-control[data-fieldname="is_primary_mobile_no"]').should("be.hidden"); + cy.get('@table-form').find('.grid-footer-toolbar').click(); + + cy.get('@table').find('[data-idx="2"] .edit-grid-row').click(); + cy.get('.grid-row-open').as('table-form'); + cy.get('@table-form').find('.frappe-control[data-fieldname="is_primary_mobile_no"]').should("be.hidden"); + cy.get('@table-form').find('.grid-footer-toolbar').click(); + }); + }); + it('update docfield property using toggle_enable', () => { + cy.visit('/app/contact/Test Contact'); + cy.window().its("cur_frm").then(frm => { + cy.get('.frappe-control[data-fieldname="phone_nos"]').as('table'); + let field = frm.get_field("phone_nos"); + field.grid.toggle_enable("phone", false); + + + cy.get('@table').find('[data-idx="1"] .edit-grid-row').click(); + cy.get('.grid-row-open').as('table-form'); + cy.get('@table-form').find('.frappe-control[data-fieldname="phone"] .control-value').should('have.class', 'like-disabled-input'); + cy.get('@table-form').find('.grid-footer-toolbar').click(); + + cy.get('@table').find('[data-idx="2"] .edit-grid-row').click(); + cy.get('.grid-row-open').as('table-form'); + cy.get('@table-form').find('.frappe-control[data-fieldname="phone"] .control-value').should('have.class', 'like-disabled-input'); + cy.get('@table-form').find('.grid-footer-toolbar').click(); + }); + }); + it('update docfield property using toggle_reqd', () => { + cy.visit('/app/contact/Test Contact'); + cy.window().its("cur_frm").then(frm => { + cy.get('.frappe-control[data-fieldname="phone_nos"]').as('table'); + let field = frm.get_field("phone_nos"); + field.grid.toggle_reqd("phone", false); + + cy.get('@table').find('[data-idx="1"] .edit-grid-row').click(); + cy.get('.grid-row-open').as('table-form'); + cy.get_field("phone").as('phone-field'); + cy.get('@phone-field').focus().clear().wait(500).blur(); + cy.get('@phone-field').should("not.have.class", "has-error"); + cy.get('@table-form').find('.grid-footer-toolbar').click(); + + cy.get('@table').find('[data-idx="2"] .edit-grid-row').click(); + cy.get('.grid-row-open').as('table-form'); + cy.get_field("phone").as('phone-field'); + cy.get('@phone-field').focus().clear().wait(500).blur(); + cy.get('@phone-field').should("not.have.class", "has-error"); + cy.get('@table-form').find('.grid-footer-toolbar').click(); + + }); + }); +}); + diff --git a/frappe/public/js/frappe/form/grid.js b/frappe/public/js/frappe/form/grid.js index 0fa36e7e5d..11fda3c8b0 100644 --- a/frappe/public/js/frappe/form/grid.js +++ b/frappe/public/js/frappe/form/grid.js @@ -503,7 +503,7 @@ export default class Grid { set_column_disp(fieldname, show) { if ($.isArray(fieldname)) { for (let field of fieldname) { - this.update_docfield_property(field, "hidden", show) + this.update_docfield_property(field, "hidden", show); this.set_editable_grid_column_disp(field, show); } } else { From 455d99ed3509d4ab16342ad1a67356eb340e22cd Mon Sep 17 00:00:00 2001 From: hrwx Date: Sun, 13 Feb 2022 20:17:01 +0000 Subject: [PATCH 6/6] fix: incorrect function path --- cypress/integration/grid.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cypress/integration/grid.js b/cypress/integration/grid.js index da2d2ddc2b..4fa52712cf 100644 --- a/cypress/integration/grid.js +++ b/cypress/integration/grid.js @@ -7,7 +7,7 @@ context('Grid', () => { cy.login(); cy.visit('/app/website'); return cy.window().its('frappe').then(frappe => { - return frappe.call("frappe.tests.ui_test_helpers.create_contacts_and_update_meta"); + return frappe.call("frappe.tests.ui_test_helpers.create_contact_phone_nos_records"); }); }); it('update docfield property using update_docfield_property', () => {