summaryrefslogtreecommitdiff
path: root/addons/web/static/tests/fields/relational_fields_tests.js
diff options
context:
space:
mode:
authorMartin Trigaux <mat@odoo.com>2019-07-16 09:14:17 +0000
committerMartin Trigaux <mat@odoo.com>2019-07-16 09:14:17 +0000
commitcf8e74a1a7d3404f57798573e8b15ce4dc5b9be4 (patch)
treebd95e9d20aff9b4f92550bffb2835a55c3698c27 /addons/web/static/tests/fields/relational_fields_tests.js
parentb67a3bb403b80e98a2b66dcb8cf570d2b156fb68 (diff)
parent1bd434da34731b5467cc17fdffe6f3ed5dfea2d4 (diff)
[MERGE] Forward port of 12.0 to saas-12.2 up to 1bd434da34731b546
closes odoo/odoo#34901 Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
Diffstat (limited to 'addons/web/static/tests/fields/relational_fields_tests.js')
-rw-r--r--addons/web/static/tests/fields/relational_fields_tests.js53
1 files changed, 53 insertions, 0 deletions
diff --git a/addons/web/static/tests/fields/relational_fields_tests.js b/addons/web/static/tests/fields/relational_fields_tests.js
index b79e0d4a660..c82d031d7d5 100644
--- a/addons/web/static/tests/fields/relational_fields_tests.js
+++ b/addons/web/static/tests/fields/relational_fields_tests.js
@@ -8,6 +8,7 @@ var relationalFields = require('web.relational_fields');
var testUtils = require('web.test_utils');
var createView = testUtils.createView;
+var createAsyncView = testUtils.createAsyncView;
QUnit.module('fields', {}, function () {
@@ -677,6 +678,58 @@ QUnit.module('relational_fields', {
form.destroy();
});
+ // FORWARDPORT THIS UP TO 12.2, NOT FURTHER
+ QUnit.test('many2manys inside a one2many are fetched in batch after onchange', async function (assert) {
+ assert.expect(7);
+
+ this.data.partner.onchanges = {
+ turtles: function (obj) {
+ obj.turtles = [
+ [5],
+ [1, 1, {
+ turtle_foo: "leonardo",
+ partner_ids: [[4, 2]],
+ }],
+ [1, 2, {
+ turtle_foo: "donatello",
+ partner_ids: [[4, 2], [4, 4]],
+ }],
+ ];
+ },
+ };
+
+ var form = await createAsyncView({
+ View: FormView,
+ model: 'partner',
+ data: this.data,
+ arch: '<form>' +
+ '<field name="turtles">' +
+ '<tree editable="bottom">' +
+ '<field name="turtle_foo"/>' +
+ '<field name="partner_ids" widget="many2many_tags"/>' +
+ '</tree>' +
+ '</field>' +
+ '</form>',
+ enableBasicModelBachedRPCs: true,
+ mockRPC: function (route, args) {
+ assert.step(args.method || route);
+ if (args.method === 'read') {
+ assert.deepEqual(args.args[0], [2, 4],
+ 'should read the partner_ids once, batched');
+ }
+ return this._super.apply(this, arguments);
+ },
+ });
+
+ assert.containsN(form, '.o_data_row', 2);
+ assert.strictEqual(form.$('.o_field_widget[name="partner_ids"]').text().replace(/\s/g, ''),
+ "secondrecordsecondrecordaaa");
+
+ assert.verifySteps(['default_get', 'onchange', 'read']);
+
+ form.destroy();
+ });
+
QUnit.test('many2many read, field context is properly sent', function (assert) {
assert.expect(4);