summaryrefslogtreecommitdiff
path: root/addons/web/static/tests/widgets/debug_manager_tests.js
diff options
context:
space:
mode:
authorLucas Perais (lpe) <lpe@odoo.com>2018-09-20 17:18:28 +0200
committerLucas Perais (lpe) <lpe@odoo.com>2018-10-01 09:31:15 +0200
commit1bd7adcc8b4bcf0d01c3386660249a37c6f8e437 (patch)
tree23de400a047fb6f549fda70d98a1daf640f7df76 /addons/web/static/tests/widgets/debug_manager_tests.js
parent21f8ee011948d63d3e402f2f59d19a78ef076c58 (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.js84
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();
+ });
});
});