diff options
| author | Martin Trigaux <mat@odoo.com> | 2019-07-16 09:14:17 +0000 |
|---|---|---|
| committer | Martin Trigaux <mat@odoo.com> | 2019-07-16 09:14:17 +0000 |
| commit | cf8e74a1a7d3404f57798573e8b15ce4dc5b9be4 (patch) | |
| tree | bd95e9d20aff9b4f92550bffb2835a55c3698c27 /addons/web/static/tests/fields | |
| parent | b67a3bb403b80e98a2b66dcb8cf570d2b156fb68 (diff) | |
| parent | 1bd434da34731b5467cc17fdffe6f3ed5dfea2d4 (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')
| -rw-r--r-- | addons/web/static/tests/fields/relational_fields_tests.js | 53 |
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); |
