diff options
| author | Géry Debongnie <ged@odoo.com> | 2017-12-18 14:29:02 +0100 |
|---|---|---|
| committer | Géry Debongnie <ged@odoo.com> | 2017-12-18 17:29:14 +0100 |
| commit | 0c98951f1ceea0104d06cd0e543cf32fc1c34f27 (patch) | |
| tree | 4d6a7eb9feefe6506256da2b4fbbe2fcd7e67c23 /addons | |
| parent | fa9f58d6ced2e18403506b1b59a8de2734d71671 (diff) | |
[FIX] barcodes: use patch to prevent interactions between tests
There is a subtle issue happening in tests when we override a widget
property for the duration of the test and try to restore the initial state at
the end by rewriting on the property. It actually changes the widget, by
having a function bound to the sub widget prototype instead of its ancestor.
This in turns can cause weird interactions with the class system.
We introduced a proper way to temporarily patch a class/widget by adding
a method in testUtils to do exactly that. This commit simply uses that
method to prevent unwanted interactions in barcode tests
Diffstat (limited to 'addons')
| -rw-r--r-- | addons/barcodes/static/tests/barcode_tests.js | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/addons/barcodes/static/tests/barcode_tests.js b/addons/barcodes/static/tests/barcode_tests.js index 56d11af9b9a..cf77497a2a7 100644 --- a/addons/barcodes/static/tests/barcode_tests.js +++ b/addons/barcodes/static/tests/barcode_tests.js @@ -164,11 +164,12 @@ QUnit.test('do no update form twice after a command barcode scanned', function ( var delay = barcodeEvents.BarcodeEvents.max_time_between_keys_in_ms; barcodeEvents.BarcodeEvents.max_time_between_keys_in_ms = 0; - var formUpdate = FormController.prototype.update; - FormController.prototype.update = function () { - assert.step('update'); - return formUpdate.apply(this, arguments); - }; + testUtils.patch(FormController, { + update: function () { + assert.step('update'); + return this._super.apply(this, arguments); + }, + }); var form = createView({ View: FormView, @@ -206,7 +207,7 @@ QUnit.test('do no update form twice after a command barcode scanned', function ( form.destroy(); barcodeEvents.BarcodeEvents.max_time_between_keys_in_ms = delay; - FormController.prototype.update = formUpdate; + testUtils.unpatch(FormController); }); QUnit.test('widget field_float_scannable', function (assert) { |
