diff options
| author | Sébastien Theys <seb@odoo.com> | 2020-08-13 16:26:35 +0000 |
|---|---|---|
| committer | Sébastien Theys <seb@odoo.com> | 2020-08-13 16:26:35 +0000 |
| commit | c2918c139b8f1026b57a257fbb74570d7a224c98 (patch) | |
| tree | 6b1a5cbf5b048dd86048119cd66f5fa382595a7b /addons/web/static/tests/views/basic_model_tests.js | |
| parent | 41527531b7b6f727e25a5a68aedb49609fbb1d3a (diff) | |
[IMP] web, *: improve mock server and replace most mail mockRPC
Improve mock server:
- add support for mocked `fetch`
- add support for `active_test`
- add support for x2m `in` in domains
- add support for default values computed from a function
- implement a more natural "next id" compute
- allow initial data without ids
- ensure write and x2m commands integrity
- improve bad data/bad commands error messages
- always warn for failing RPC, not only in debug mode
- fix all existing tests that had inconsistency data
Other changes done in mail (or dependents) that are not just related to tests:
- remove `direct_partner` from formatter result
->`correspondent` can be computed from other keys, especially `members`
- fix `livechat_visitor` convertData
-> only process if there is value
- add `current_partner` and `current_user_id` as `init_messaging` result
-> easier to mock than session
- remove usage of `need_moderation`
-> that was just a search indirection to `moderation_status`
- adapt `partner_id` -> `res_partner_id` key in `_notification_format`
-> to be consistent with field name
- add name in result of `mail_partner_format`
-> sometimes display_name is not the same
- remove usage of `is_moderator`
-> that was just an indirection to `moderation_channel_ids`
Enterprise counterpart: https://github.com/odoo/enterprise/pull/11523
task-2287171
closes odoo/odoo#55854
X-original-commit: 7ba3fecb3377a720d1eb70e7515a0c45da73836d
Related: odoo/enterprise#12391
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
Diffstat (limited to 'addons/web/static/tests/views/basic_model_tests.js')
| -rw-r--r-- | addons/web/static/tests/views/basic_model_tests.js | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/addons/web/static/tests/views/basic_model_tests.js b/addons/web/static/tests/views/basic_model_tests.js index b533c6587e9..abd91ca17cf 100644 --- a/addons/web/static/tests/views/basic_model_tests.js +++ b/addons/web/static/tests/views/basic_model_tests.js @@ -36,6 +36,7 @@ odoo.define('web.basic_model_tests', function (require) { }, product: { fields: { + display_name: { string: "Product Display Name", type: "char" }, name: { string: "Product Name", type: "char" }, category: { string: "Category M2M", type: 'many2many', relation: 'partner_type' }, active: {string: "Active", type: 'boolean', default: true}, @@ -1403,14 +1404,17 @@ odoo.define('web.basic_model_tests', function (require) { QUnit.test('default_get: fetch many2one with default (empty & not) inside x2manys', async function (assert) { assert.expect(4); + this.data.partner.fields.category_m2o = { + type: 'many2one', + relation: 'partner_type', + }; this.data.partner.fields.o2m = { string: "O2M", type: 'one2many', relation: 'partner', default: [ [6, 0, []], - [0, 0, { category: false }], - [0, 0, { category: 12 }], + [0, 0, { category_m2o: false, o2m: [] }], + [0, 0, { category_m2o: 12, o2m: [] }], ], }; - this.data.partner.fields.category.type = 'many2one'; var model = await createModel({ Model: BasicModel, @@ -1432,7 +1436,7 @@ odoo.define('web.basic_model_tests', function (require) { relatedFields: this.data.partner.fields, fieldsInfo: { list: { - category: { + category_m2o: { relatedFields: { display_name: {} }, }, }, @@ -1449,9 +1453,9 @@ odoo.define('web.basic_model_tests', function (require) { var resultID = await model.load(params); var record = model.get(resultID); assert.strictEqual(record.data.o2m.count, 2, "o2m field should contain 2 records"); - assert.strictEqual(record.data.o2m.data[0].data.category, false, + assert.strictEqual(record.data.o2m.data[0].data.category_m2o, false, "first category field should be empty"); - assert.strictEqual(record.data.o2m.data[1].data.category.data.display_name, "gold", + assert.strictEqual(record.data.o2m.data[1].data.category_m2o.data.display_name, "gold", "second category field should have been correctly fetched"); model.destroy(); |
