diff options
| author | Lucas Perais (lpe) <lpe@odoo.com> | 2018-09-20 17:18:28 +0200 |
|---|---|---|
| committer | Lucas Perais (lpe) <lpe@odoo.com> | 2018-10-01 09:31:15 +0200 |
| commit | 1bd7adcc8b4bcf0d01c3386660249a37c6f8e437 (patch) | |
| tree | 23de400a047fb6f549fda70d98a1daf640f7df76 /addons/web/static/tests/widgets/debug_manager_tests.js | |
| parent | 21f8ee011948d63d3e402f2f59d19a78ef076c58 (diff) | |
[FIX] web: debug_manager set defaults
On a form view, click on set defaults, select a value for a field,
then save
Before this commit, there was a traceback because the model on which we apply
the defaults was not found
After this commit, it works as expected
OPW 1887032
OPW 1888715
closes #27148
Diffstat (limited to 'addons/web/static/tests/widgets/debug_manager_tests.js')
| -rw-r--r-- | addons/web/static/tests/widgets/debug_manager_tests.js | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/addons/web/static/tests/widgets/debug_manager_tests.js b/addons/web/static/tests/widgets/debug_manager_tests.js index c63fd02e48d..d0b575170d9 100644 --- a/addons/web/static/tests/widgets/debug_manager_tests.js +++ b/addons/web/static/tests/widgets/debug_manager_tests.js @@ -2,6 +2,7 @@ odoo.define('web.debugManagerTests', function (require) { "use strict"; var DebugManager = require('web.DebugManager'); +var FormView = require('web.FormView'); var testUtils = require('web.test_utils'); /** @@ -12,6 +13,7 @@ var testUtils = require('web.test_utils'); */ var createDebugManager = function (params) { params = params || {}; + var mockRPC = params.mockRPC; _.extend(params, { mockRPC: function (route, args) { if (args.method === 'check_access_rights') { @@ -20,6 +22,9 @@ var createDebugManager = function (params) { if (args.method === 'xmlid_to_res_id') { return $.when(true); } + if (mockRPC) { + return mockRPC.apply(this, arguments); + } return this._super.apply(this, arguments); }, session: { @@ -67,5 +72,84 @@ QUnit.module('DebugManager', {}, function () { debugManager.destroy(); }); + + QUnit.test("Debug: Set defaults with right model", function (assert) { + assert.expect(2); + + /* Click on debug > set default, + * set some defaults, click on save + * model and some other data should be sent to server + */ + + // We'll need a full blown architecture with some data + var data = { + partner: { + fields: { + foo: {string: "Foo", type: "char", default: "My little Foo Value"}, + }, + records: [{ + id: 1, + foo: "yop", + }] + }, + 'ir.default': { // We just need this to be defined + fields: {}, + }, + } + + var form = testUtils.createView({ + View: FormView, + model: 'partner', + data: data, + arch: '<form string="Partners">' + + '<field name="foo" />' + + '</form>', + res_id: 1, + }); + + // Now the real tested component + var debugManager = createDebugManager({ + data: data, + mockRPC: function (route, args) { + if (route == "/web/dataset/call_kw/ir.default/set") { + assert.deepEqual(args.args, ["partner", "foo", "yop", true, true, false], + 'Model, field, value and booleans for current user/company should have been passed'); + return $.when(); + } + return this._super.apply(this, arguments); + } + }); + + debugManager.appendTo($('#qunit-fixture')); + + // Simulate update debug manager from web client + var action = { + views: [{ + fieldsView: { + view_id: 1, + model: 'partner', + type: 'form', + }, + type: "form", + }], + res_model: 'partner', + }; + + // We are all set + debugManager.update('action', action, form); + + // click on set_defaults dropdown + debugManager.$('a[data-action="set_defaults"]').click(); + var $modal = $('.modal-content'); + assert.strictEqual($modal.length, 1, 'One modal present'); + + $modal.find('select[id=formview_default_fields] option[value=foo]').prop('selected', true); + + // Save + $modal.find('.modal-footer button').eq(1).click(); + + form.destroy(); + debugManager.destroy(); + }); }); }); |
