diff options
Diffstat (limited to 'addons/web/static/tests/views/basic_model_tests.js')
| -rw-r--r-- | addons/web/static/tests/views/basic_model_tests.js | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/addons/web/static/tests/views/basic_model_tests.js b/addons/web/static/tests/views/basic_model_tests.js index efbbb276aef..65962870be7 100644 --- a/addons/web/static/tests/views/basic_model_tests.js +++ b/addons/web/static/tests/views/basic_model_tests.js @@ -2123,4 +2123,47 @@ QUnit.module('Views', { model.destroy(); }); + QUnit.test('onchange on a boolean field', function (assert) { + assert.expect(2); + + var newFields = { + foobool: { + type: 'boolean', + string: 'foobool', + }, + foobool2: { + type: 'boolean', + string: 'foobool2', + }, + }; + _.extend(this.data.partner.fields, newFields); + + this.data.partner.onchanges.foobool = function (obj) { + if (obj.foobool) { + obj.foobool2 = true; + } + }; + + this.data.partner.records[0].foobool = false; + this.data.partner.records[0].foobool2 = true; + + this.params.res_id = 1; + this.params.fieldNames = ['foobool', 'foobool2']; + this.params.fields = this.data.partner.fields; + var model = createModel({ + Model: BasicModel, + data: this.data, + }); + + model.load(this.params).then(function (resultID) { + var record = model.get(resultID); + model.notifyChanges(resultID, {foobool2: false}); + record = model.get(resultID); + assert.strictEqual(record.data.foobool2, false, "foobool2 field should be false"); + model.notifyChanges(resultID, {foobool: true}); + record = model.get(resultID); + assert.strictEqual(record.data.foobool2, true, "foobool2 field should be true"); + }); + model.destroy(); + }); });}); |
